<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?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 xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-many-mpls-multiple-gal-01" ipr="trust200902" obsoletes="" updates="5586" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3">

  <!-- xml2rfc v2v3 conversion 3.5.0 -->
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<front>
    <title abbrev="Multiple GAL">Number of Generic Associated Channel Labels in the MPLS Label Stack</title>
    
    <seriesInfo name="Internet-Draft" value="draft-many-mpls-multiple-gal-01"/>
    
    <author fullname="Greg Mirsky" initials="G." surname="Mirsky">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <code/>
          <country/>
        </postal>
        <email>gregimirsky@gmail.com</email>
        <email>gregory.mirsky@ztetx.com</email>

      </address>
    </author>
    
    <author fullname="Huub van Helvoort" initials="H." surname="van Helvoort">
      <organization>Individual Contributor</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <code/>
          <country/>
        </postal>
        <email>huubatwork@gmail.com</email>
      </address>
    </author>
    
        <author fullname="Stewart Bryant" initials="S." surname="Bryant">
      <organization>Futurewei Technologies Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <code/>
          <country/>
        </postal>
        <email>sb@stewartbryant.com</email>
      </address>
    </author>
    
      <author fullname="Alexander Vainshtein" initials="A." surname="Vainshtein">
      <organization>Ribbon Communications Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <code/>
          <country/>
        </postal>
        <email>Alexander.Vainshtein@rbbn.com</email>
      </address>
    </author>
    
    <!--
      <author fullname="Adrian Farrel" initials="A." surname="Farrel">
      <organization>Old Dog Consulting</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <code/>
          <country/>
        </postal>
        <email>adrian@olddog.co.uk</email>
      </address>
    </author>
    -->
    
      <author fullname="Italo Busi" initials="I." surname="Busi">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <code/>
          <country/>
        </postal>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    
    <date year="2021"/>
    
    <area>Routing</area>
    <workgroup>MPLS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>MPLS</keyword>
    <keyword>GAL</keyword>
    <keyword>Associated Channel</keyword>
    <abstract>
      <t>
 This document describes the requirements for using multiple Generic Associated Channel Labels (GALs) 
 in an MPLS label stack. As a result, the document updates RFC 5586 by removing the restriction imposed
 on the usage of GAL that limits the number of GAL in the MPLS label stack to one.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro" toc="default">
      <name>Introduction</name>
      <t>
<xref target="RFC5085"/> defined the associated channel mechanism and the Associated Channel Header (ACH)
for exchange of control, management, and Operations, Administration, and Maintenance (OAM) messages in Pseudowires (PWs).
<xref target="RFC5586"/> generalized that associated channel mechanism and the ACH for use in Sections, Label Switched Paths (LSPs), and PWs
as the Generic Associated Channel (G-ACh) and introduced the generalized label-based exception mechanism using the Generic Associated Channel Label (GAL).
</t>
<t>
<xref target="RFC5586"/> restricted the number of times a GAL can appear in an MPLS label stack to one time only.
This document updates <xref target="RFC5586"/> by removing that restriction for non-MPLS-TP networks.
      </t>
    </section>

      <section 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 anchor="gal-number-sec" toc="default">
      <name>Number of GAL in the MPLS Label Stack</name>
      <t>
<xref target="RFC5586"/> has limited the number of GALs in an MPLS label stack:
</t>
<ul spacing="normal" empty="true">
<li>
Furthermore, when present, the GAL MUST NOT appear more than once in the label stack.
</li>
</ul>

<t>
In some MPLS networks, e.g., when realizing Service Function Chaining with MPLS-based forwarding plane <xref target="RFC8595"/>,
putting more than a single GAL in the MPLS label stack can simplify the processing of OAM packets and, as a result, improve the performance.
An extension of the MPLS Echo Request and Reply protocol <xref target="RFC8029"/> in such an environment is discussed in <xref target="I-D.lm-mpls-sfc-path-verification"/>.
Because it is expected that a general Service Function does not support processing of MPLS echo request messages, a GAL being
used within a basic unit of MPLS label stack to indicate that the payload is ACH-encapsulated OAM message. And in the label-stacking case,
multiple basic units on the MPLS label stack, and, consequently, GALs could be placed in an MPLS label stack.
Thus, this document removes the limit on the number of GALs present in an MPLS label stack by changing the statement in <xref target="RFC5586"/>
as follows:
</t>
<ul spacing="normal" empty="true">
<li>
Furthermore, in non-MPLS-TP networks, when present, the GAL MAY appear more than once in the label stack.
</li>
</ul>
<t>
<xref target="RFC5586"/> requires that when GAL is at the bottom of the label stack, it is followed by an ACH:
</t>
<ul spacing="normal" empty="true">
<li>
Where the GAL is at the bottom of the label stack (i.e., S bit set to 1), then it MUST always be followed by an ACH.
</li>
</ul>
<t>
This document updates <xref target="RFC5586"/> by extending that requirement for environments when GAL is not at the bottom of the label stack as follows:
</t>
<ul spacing="normal" empty="true">
<li>
Where GAL is present in the label stack, the label element at the bottom of the label stack (i.e., S bit set to 1) MUST always be followed by an ACH.
</li>
</ul>
    </section>
    
  <section anchor="gal-processing-sec" toc="default">
      <name>Processing GAL when not at the Bottom of the Label Stack</name>
    <t>
    [Ed.note: Describe GAL processing by transit and egress nodes.
   Illustrate the transformation of the MPLS label stack as a packet
   transits through the domain.]
    </t>
  </section>
  
    <section anchor="iana-consider" toc="default">
      <name>IANA Considerations</name>
      <t>This document makes no request for IANA allocations.
   This section should be removed before publication.
</t>
    </section>
    
    <section anchor="security" toc="default">
      <name>Security Considerations</name>
      <t>
There are no further security considerations than those in <xref target="RFC5586"/>.
      </t>
    </section>
    
    <section toc="default">
      <name>Acknowledgments</name>
      <t>
         TBA
      </t>
    </section>
  </middle>
  
  <back>
  
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5085.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5586.xml"/>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8595.xml"/>

    </references>
    
      <references>
        <name>Informative References</name>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-lm-mpls-sfc-path-verification.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/>
      </references>
      
    </references>
    
  </back>
</rfc>
