<?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.1 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sheng-idr-advertising-saas-path-performance-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.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-00"/>
    <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" role="editor">
      <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="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="2023" month="October" day="23"/>
    <area>routing</area>
    <workgroup>IDR</workgroup>
    <keyword>SDWAN</keyword>
    <abstract>
      <?line 46?>

<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>
  </front>
  <middle>
    <?line 50?>

<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 402?>

<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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
UVOntzvQvwAcfVr+mkcAAA==

-->

</rfc>
