<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sheng-idr-advertising-saas-path-performance-01" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="Saas Path Metric">Advertising SaaS Path Performance Metrics using BGP</title>
    <seriesInfo name="Internet-Draft" value="draft-sheng-idr-advertising-saas-path-performance-01"/>
    <author initials="C." surname="Sheng" fullname="Cheng Sheng">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>shengcheng@huawei.com</email>
      </address>
    </author>
    <author initials="H." surname="Shi" fullname="Hang Shi">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>Beiqing Road</street>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>shihang9@huawei.com</email>
      </address>
    </author>
    <author initials="J." surname="Dong" fullname="Jie Dong" role="editor">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>jie.dong@huawei.com</email>
      </address>
    </author>
    <author initials="L." surname="Dunbar" fullname="Linda Dunbar">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>linda.dunbar@futurewei.com</email>
      </address>
    </author>
    <date year="2025" month="May" day="17"/>
    <area>Routing</area>
    <workgroup>Inter-Domain Routing</workgroup>
    <keyword>SDWAN</keyword>
    <abstract>
      <?line 52?>

<t>This document extends BGP to advertise the SaaS path performance metrics from the gateway sites to branch sites. The user can access SaaS applications through the DIA (Direct Internet Access) link at the branch site or through the DIA link at the gateway site, or use the DIA link of a gateway site for redundancy. This approach will improve the SaaS access experience for end-users.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Inter-Domain Routing Working Group mailing list (idr@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/idr/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/VMatrix1900/draft-sheng-idr-advertising-saas-path-performance"/>.</t>
    </note>
  </front>
  <middle>
    <?line 56?>

<section anchor="intro">
      <name>Introduction</name>
      <t>With the continuous cloudification of enterprise IT architectures and widespread use of public clouds, more and more enterprises are turning their infrastructures (such as enterprise data centers) to cloudification, abandoning traditional closed IT architectures and using open network architectures.  To further achieve this goal, enterprises' mission-critical applications, such as office, production ERP systems, and sales systems, are migrated to the cloud. In this case, enterprises increasingly rely on software as a service (SaaS) provided by application service providers and prefer to access mission-critical applications from the cloud over the Internet.</t>
      <t>Accessing SaaS applications like SalesForce, SharePoint, Dropbox and Office 365 over congested public networks can be unreliable and slow, due to heavy traffic, packet loss, and fluctuating latencies. Application slowness results in poor end-user experience.</t>
      <t>This document provides a way to improve the SaaS access experience. As shown in the <xref target="scenario"/>, user can access SaaS applications through the DIA (Direct Internet Access) link at the branch site or through the DIA link at the gateway site. The GWs at the gateway site normally have stronger capabilities and will provide SaaS access services for branch sites. The CPE at the branch site need to choose the best path for each SaaS application. The performance of the path between gateway and SaaS application needs to be advertised to CPE. This document extends BGP to advertise the SaaS path performance metrics.</t>
      <figure anchor="scenario">
        <name>SaaS Application Path Performance Optimization Scenario</name>
        <artwork><![CDATA[
                               (^^^^^^^^^^^^^^^^^^^^^^^)
                              (       SaaS Apps         )
                              (  +----+  +----+  +----+ )
                              (  |App1|  |App2|  |App3| )
                              (  +----+  +----+  +----+ )
                               (^^^^^^^^^^^^^^^^^^^^^^^)
                                     |   |    |
                                     |   |    |
                                     |  .|----|
                                     | ( |    |)
                                   .-|(  |    | )--.
                            +-----(--+Internet/MPLS )
                           /       '--(  |    | )--'
                          /            ( |    \)
                         /              '|----'\
                        +                | +----|-----------+
                    DIA | Link           \ | +--|--+        |
                        |   +-------------\--| GW2 |        |
                        |  / SD-WAN Tunnel \ +-----+        |
                        | /                |\       Hub Site|
              +----+  +-|/-+ SD-WAN Tunnel | \-----+        |
              |User|--|CPE1|-----------------| GW1 |        |
              +----+  +----+               | +-----+        |
                      Branch Site          +----------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>In addition to terms defined in [I-D.ietf-idr-sdwan-edge-discovery], this document uses following terms:</t>
      <ul spacing="normal">
        <li>
          <t>DIA: Direct Internet Access</t>
        </li>
        <li>
          <t>FQDN: Fully Qualified Domain Name</t>
        </li>
        <li>
          <t>QoS: Quality of Service</t>
        </li>
        <li>
          <t>SaaS: Software-as-a-Service</t>
        </li>
      </ul>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="dynamically-select-the-best-path">
      <name>Dynamically Select the Best Path</name>
      <t>This section uses the scenario shown in <xref target="scenario"/> as an example to describe how to implement the SaaS Path Optimization solution.</t>
      <t>Both the Branch and GW routers initiate periodic probes to target SaaS applications. The GW routers advertise the probe result to the Branch routers. The following figure shows the SaaS Path Performance Metrics table on the CPE1. Note that in this example, CPE1, GW1, and GW2 have multiple paths for accessing App1, 2 paths are listed for each device. The access to App2 and App3 is similar, only one entry is listed for the purpose of simplifying the description.</t>
      <figure anchor="Metric-table">
        <name>CPE1's SaaS Path Perfermance Metrics Table</name>
        <artwork><![CDATA[
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |Name|ID|Path |Path Out Intf  |O_QoS|Status| L | D | J | B |F_QoS|
   |    |  |Index|(# Remote)     |     |      |   |   |   |   |     |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App1|10| I11 |  GE 0/0/1.1   | 75  | Good |  1|150| 40|B01|  75 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App1|10| I12 |  GE 0/0/1.1   | 80  | Good |  1|160| 40|B01|  80 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App1|10| I13 |# GW1-System IP| 85  | Good |  0|100| 40|B11|  83 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App1|10| I14 |# GW1-System IP| 85  | Good |  0|100| 40|B12|  81 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App1|10| I15 |# GW2-System IP| 90  | Best |  0| 80| 20|B13|  82 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App1|10| I16 |# GW2-System IP| 90  | Best |  0| 80| 20|B14|  88 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App2|20| I02 |  GE 0/0/1.1   | 40  |Issue |  5|180|101|B02|  40 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App2|20| I21 |# GW1-System IP| 80  | Good |  1|100| 70|B21|  75 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App2|20| I22 |# GW2-System IP| 60  | Acct |  3|160| 80|B22|  55 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App3|30| I03 |  GE 0/0/1.1   | 90  | Best |  0| 58| 20|B03|  90 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App3|30| I31 |# GW1-System IP| 80  | Good |  0| 65| 30|B31|  78 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   |App3|30| I32 |# GW2-System IP| 75  | Acct |  2|130| 90|B32|  72 |
   +----+--+-----+---------------+-----+------+---+---+---+---+-----+
   L: Loss          D: Delay
   J: Jitter        B: Bandwidth
   Acct: Acceptable O_QoS: Original QoS
   F_QoS: Final QoS
]]></artwork>
      </figure>
      <t>Upon receiving the QoS score from the GW router, CPE1 will calculates the Final QoS score based on the SD-WAN tunnel status and and the received QoS score. When a user of CPE1 accesses a SaaS applications, CPE1 determines the best performing path toward the SaaS application based on the Final QoS score (F_QoS).</t>
      <t>For example If App1 is the target SaaS Application, select the SaaS path that passes through GW2 with the Path Index I16 because it has the highest score: 88. If App2 is the target SaaS Application, select the SaaS path that passes through GW1 with the Path Index I21 because it has the highest score: 75. If App3 is the target SaaS application, select the local SaaS path with the Path Index I03 because it has the highest score: 90.</t>
    </section>
    <section anchor="the-saas-path-performance-route">
      <name>The SaaS Path Performance Route</name>
      <t>The BGP SD-WAN NLRI as defined in [I-D.ietf-idr-sdwan-edge-discovery] is shown below:</t>
      <figure anchor="NLRI">
        <name>BGP SD-WAN NLRI</name>
        <artwork><![CDATA[
 +-----------------------------------+
 | Route Type (2 octets)             |
 +-----------------------------------+
 | Length (2 octets)                 |
 +-----------------------------------+
 ~                                   ~
 | Type Specific Value (variable)    |
 ~                                   ~
 +-----------------------------------+
]]></artwork>
      </figure>
      <t>Where:</t>
      <ul spacing="normal">
        <li>
          <t>Route (NLRI) Type: 2 octet value to define the encoding of the rest of the SD-WAN NLRI.</t>
        </li>
        <li>
          <t>Length: 2 octets of length expressed in bits as defined in [RFC4760].</t>
        </li>
      </ul>
      <t>This document defines an additional route type to be used for the advertisement of the SaaS Path Performance Metrics between different enterprise sites:</t>
      <ul spacing="normal">
        <li>
          <t>NLRI Route Type: 2</t>
        </li>
        <li>
          <t>Name: SaaS Path Performance Route</t>
        </li>
      </ul>
      <section anchor="the-saas-path-performance-route-encoding">
        <name>The SaaS Path Performance Route Encoding</name>
        <figure anchor="Encoding">
          <name>SaaS Path Performance Route</name>
          <artwork><![CDATA[
 +--------------------+
 |  Route Type = 2    | 2 octets
 +--------------------+
 |  Length            | 2 octets
 +--------------------+
 |  Site ID           | 4 octets
 +--------------------+
 |  APP ID            | 4 octets
 +--------------------+
 |  APP Req           | 1 octet
 +--------------------+
 |  Path Index Type   | 1 octet
 +--------------------+
 |  Path Index Value  | 3 or 4 or 16 octets
 +--------------------+
 |  SD-WAN-Node-ID    | 4 or 16 octets
 +--------------------+
]]></artwork>
        </figure>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t>Route Type: 2, SaaS Path Performance Route</t>
          </li>
          <li>
            <t>Length: 2 octets of length expressed in bits as defined in [RFC4760].</t>
          </li>
          <li>
            <t>Site ID: 4 octets, A site ID is a unique identifier of an enterprise site in the SD-WAN network.</t>
          </li>
          <li>
            <t>APP ID: 4 octets, SaaS Application ID, a unique Application ID to identify different applications. Application may be deployed using different IP address in different area. Thus an ID is needed to identify the application.</t>
          </li>
          <li>
            <t>APP Req: 1 octet, Application requirement to indicate the application requirement of the path quality. For example, an real time video conferencing application requires higher quality than a background file backup application. The value includes:
            </t>
            <ul spacing="normal">
              <li>
                <t>Type = 1: default;</t>
              </li>
              <li>
                <t>Type = 2: Medium;</t>
              </li>
              <li>
                <t>Type = 3: High;</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Path Index Type: Indicates the type of the path index.</t>
          </li>
          <li>
            <t>Path Index Value: a Path Index Type specific Value:
            </t>
            <ul spacing="normal">
              <li>
                <t>Type 1, the Path Index Value is a 4-byte local index value, which is used to identify an outbound interface for accessing SaaS applications.</t>
              </li>
              <li>
                <t>Type 2, the Path Index Value is a 3-byte MPLS label, which is used to identify an outbound interface for accessing the SaaS application.</t>
              </li>
              <li>
                <t>Type 3, The Path Index Value is a 16-byte SRv6 SID, which is used to identify an outbound interface for accessing a SaaS application, and its Endpoint Behavior is End.DT2SaaSPath: Decapsulate SRv6 packet, then send the packet to the target SaaS application from the outbound interface indicated by the SRv6 SID.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>SD-WAN Node ID: The node's IPv4 or IPv6 address.</t>
          </li>
        </ul>
      </section>
      <section anchor="the-saas-path-performance-metrics-encoding">
        <name>The SaaS Path Performance Metrics Encoding</name>
        <t>The Metadata Path Attribute has been as defined in [I-D.ietf-idr-5g-edge-service-metadata]. This document introduces some additional Sub-TLVs to encode the SaaS Path Performance Metrics and SaaS Application Information.</t>
        <t>Another option is to use the above Sub-TLVs in the Tunnel Encapsulation Attribute [RFC9012].  In this option, the tunnel type "SaaS Application Path Performance" is added.</t>
        <section anchor="the-saas-path-delay-sub-tlv-format">
          <name>The SaaS Path Delay Sub-TLV format</name>
          <figure anchor="Path-Delay">
            <name>SaaS Path Delay Sub-TLV</name>
            <artwork><![CDATA[
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Delay Sub-Type = TBD1      |               Length          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |         Delay                 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>Delay Sub-Type: TBD by IANA.</t>
            </li>
            <li>
              <t>Length: 2 octets, the total number of octets of the value field.</t>
            </li>
            <li>
              <t>Delay: 2 octets, this field indicates the packet transmission delay, in milliseconds.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-saas-path-loss-sub-tlv-format">
          <name>The SaaS Path Loss Sub-TLV format</name>
          <figure anchor="Path-Loss">
            <name>SaaS Path Loss Sub-TLV</name>
            <artwork><![CDATA[
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Loss  Sub-Type = TBD2      |               Length          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     Loss      |
     +-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>Loss Sub-Type: TBD by IANA</t>
            </li>
            <li>
              <t>Length: 2 octets, the total number of octets of the value field.</t>
            </li>
            <li>
              <t>Loss: 1 octet, this field indicates the packet loss rate (%).</t>
            </li>
          </ul>
        </section>
        <section anchor="the-saas-path-jitter-sub-tlv-format">
          <name>The SaaS Path Jitter Sub-TLV format</name>
          <figure anchor="Path-Jitter">
            <name>SaaS Path Jitter Sub-TLV</name>
            <artwork><![CDATA[
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Jitter Sub-Type = TBD3     |               Length          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         Jitter                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>Jitter Sub-Type: TBD by IANA</t>
            </li>
            <li>
              <t>Length: 2 octets, the total number of octets of the value field.</t>
            </li>
            <li>
              <t>Jitter: 2 octets, this field indicates the jitter on the SaaS Path. Range: 1 through 1000 milliseconds</t>
            </li>
          </ul>
        </section>
        <section anchor="the-saas-path-bandwidth-sub-tlv-format">
          <name>The SaaS Path Bandwidth Sub-TLV format</name>
          <figure anchor="Path-Bandwidth">
            <name>SaaS Path Bandwidth Sub-TLV</name>
            <artwork><![CDATA[
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Bandwidth Sub-Type = TBD4    |               Length          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           Bandwidth                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>Bandwidth Sub-Type: TBD by IANA</t>
            </li>
            <li>
              <t>Length: 2 octets, the total number of octets of the value field.</t>
            </li>
            <li>
              <t>Bandwidth: 4 octets, this field indicates the bandwidth of the SaaS Path.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-saas-path-status-sub-tlv-format">
          <name>The SaaS Path Status Sub-TLV format</name>
          <figure anchor="Path-Status">
            <name>SaaS Path Status Sub-TLV</name>
            <artwork><![CDATA[
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Status Sub-Type = TBD5     |               Length          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Status     |
     +-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>Status Sub-Type: TBD by IANA</t>
            </li>
            <li>
              <t>Length: 2 octets, the total number of octets of the value field.</t>
            </li>
            <li>
              <t>Status: 1 octet, Network assessment, there are 6 levels as
follows:
              </t>
              <ul spacing="normal">
                <li>
                  <t>100: Best</t>
                </li>
                <li>
                  <t>80: Good, Meets recommendations</t>
                </li>
                <li>
                  <t>60: Acceptable</t>
                </li>
                <li>
                  <t>40: Users may experience issues</t>
                </li>
                <li>
                  <t>20: Users may complain</t>
                </li>
                <li>
                  <t>0: Network problems</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="the-saas-path-qos-sub-tlv-format">
          <name>The SaaS Path QoS Sub-TLV format</name>
          <figure anchor="Path-QoS">
            <name>SaaS Path QoS Sub-TLV</name>
            <artwork><![CDATA[
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    QoS Sub-Type = TBD6        |               Length          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      QoS      |
     +-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>QoS Sub-Type: TBD by IANA</t>
            </li>
            <li>
              <t>Length: 2 octets, the total number of octets of the value field.</t>
            </li>
            <li>
              <t>QoS: 1 octet, Quality of Service, 1-100, with 1 being the worst, and 100 being the best. The QoS value is calculated based on the values of Loss, Jitter, Delay, and Status.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-saas-application-name-sub-tlv-format">
          <name>The SaaS Application Name Sub-TLV format</name>
          <figure anchor="App-Name">
            <name>Saas Application Name Sub-TLV</name>
            <artwork><![CDATA[
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | SaaS AppName Sub-Type = TBD7  |               Length          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ~                                                               ~
     |             Application Name (1-n Octets)                     |
     ~                                                               ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>SaaS AppName Sub-Type: TBD by IANA</t>
            </li>
            <li>
              <t>Length: 2 octets, the total number of octets of the value field.</t>
            </li>
            <li>
              <t>Application Name: The name of the application represented as a string, such as Salesforce, Dropbox, Office 365, and so on.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-saas-application-domain-name-sub-tlv-format">
          <name>The SaaS Application Domain Name Sub-TLV format</name>
          <figure anchor="App-Domain-Name">
            <name>SaaS Application Domain Name Sub-TLV</name>
            <artwork><![CDATA[
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | AppDomainName Sub-Type = TBD8 |               Length          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ~                                                               ~
     |         Application Domain Name (Variable)                    |
     ~                                                               ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <ul spacing="normal">
            <li>
              <t>AppDomainName Sub-Type: TBD by IANA</t>
            </li>
            <li>
              <t>Length: 2 octets, the total number of octets of the value field.</t>
            </li>
            <li>
              <t>Application Domain Name: The domain name of the application represented as a string, such as www.salesforce.com, www.baidu.com, www.iana.org, www.dropbox.com, www.microsoft.com, and so on.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <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">
        <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>
    </references>
    <?line 408?>

<section anchor="contributors">
      <name>Contributors</name>
      <t>Shunwan Zhuang
Huawei
Email: zhuangshunwan@huawei.com</t>
      <t>Penghe Tang
Huawei Technologies
Email: tangpenghe@huawei.com@huawei.com</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
