<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ipsecme-diet-esp-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="EHCP">ESP Header Compression with Diet-ESP</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ipsecme-diet-esp-09"/>
    <author initials="D." surname="Migault" fullname="Daniel Migault">
      <organization>Ericsson</organization>
      <address>
        <email>daniel.migault@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Hatami" fullname="Maryam Hatami">
      <organization>Concordia University</organization>
      <address>
        <email>maryam.hatami@mail.concordia.ca</email>
      </address>
    </author>
    <author initials="S." surname="Céspedes" fullname="Sandra Céspedes">
      <organization>Concordia University</organization>
      <address>
        <email>sandra.cespedes@concordia.ca</email>
      </address>
    </author>
    <author initials="W." surname="Atwood" fullname="J. William Atwood">
      <organization>Concordia University</organization>
      <address>
        <email>william.atwood@concordia.ca</email>
      </address>
    </author>
    <author initials="D." surname="Liu" fullname="Daiying Liu">
      <organization>Ericsson</organization>
      <address>
        <email>harold.liu@ericsson.com</email>
      </address>
    </author>
    <author initials="T." surname="Guggemos" fullname="Tobias Guggemos">
      <organization>LMU</organization>
      <address>
        <email>guggemos@nm.ifi.lmu.de</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universitaet Bremen TZI</organization>
      <address>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="D." surname="Schinazi" fullname="David Schinazi">
      <organization>Google LLC</organization>
      <address>
        <email>dschinazi.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="August" day="17"/>
    <area>Security</area>
    <workgroup>IPsecme</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 66?>

<t>This document specifies Diet-ESP, a compression mechanism for control
information in IPsec/ESP communications. The compression uses Static Context Header Compression rules.</t>
    </abstract>
  </front>
  <middle>
    <?line 74?>

<section anchor="requirements-notation">
      <name>Requirements Notation</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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
    </section>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The Encapsulating Security Payload (ESP) <xref target="RFC4303"/> protocol is part of the IPsec <xref target="RFC4301"/> suite of protocols and can provide confidentiality, data origin authentication, integrity, anti-replay, and traffic flow confidentiality. The set of services ESP provides depends on the Security Association (SA) parameters negotiated between devices.</t>
      <t>An ESP packet is composed of the ESP Header, the ESP Payload Data, the ESP Trailer, and the Integrity Check Value (ICV). ESP has two modes of operation: Transport and Tunnel. In Transport mode, the ESP Payload Data consists of the payload of the original IP packet; the ESP Header is inserted after the original IP packet header. In Tunnel mode, commonly used for VPNs, the ESP Header is placed after an outer IP header and before the inner IP packet headers of the original datagram. This ensures both the original IP headers and payload are protected. Consequently, the ESP Data Payload field contains either the payload from the original IP packet or the fully-encapsulated IP packet, in transport mode or tunnel mode, respectively.</t>
      <t>The ESP Trailer, placed at the end of the ESP Payload Data, includes fields such as Padding and Pad Length to ensure proper alignment, and Next Header to indicate the protocol following the ESP header. The ICV, calculated over the ESP Header, ESP Data Payload, and ESP Trailer, is appended after the ESP Trailer to ensure packet integrity. For a simplified overview of ESP, readers are referred to Minimal ESP <xref target="RFC9333"/>.</t>
      <t>In <xref target="fig-esp"/>, the Payload Data, ESP Padding, Pad Length, and Next Header compose the Cleartext ESP Packet (CTE) to be protected by encryption. The Authentication Coverage extends from SPI through Padding, while the Encryption Coverage applies to the Payload Data and optional Padding, Pad Length, and Next Header fields.</t>
      <t>While ESP is effective in securing traffic, compression can reduce packet sizes, enhancing performance in networks with limited bandwidth. In such environments, reducing the size of transmitted packets is essential to improve efficiency. This document defines Diet-ESP, a protocol that includes compression/decompression (C/D) of the various structures processed by ESP. The C/D uses Static Context Header Compression and Fragmentation (SCHC) rules <xref target="RFC8724"/>. The structure of a standard uncompressed ESP packet is shown in <xref target="fig-esp"/>.</t>
      <figure anchor="fig-esp">
        <name>Top-Level Format of a standard ESP Packet. The ESP Data Payload, ESP Padding, Pad Length, and Next Header compose the Clear Text ESP Packet (CTE) to be protected by encryption.</name>
        <artwork align="center"><![CDATA[
 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Security Parameter Index (SPI)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Sequence Number                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Payload Data (variable)                    |
~                                                               ~
|               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |     ESP Padding (0-255 bytes) |Pad Len|NxtHdr|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Integrity Check Value (ICV) (variable)               |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <section anchor="sec-3c">
        <name>The Three Compressors Described in this Specification</name>
        <t>The document outlines the three compressors utilized in Diet-ESP, which are detailed as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Inner IP Compression (IIPC): The original packet to be protected by ESP, namely, the Inner IP packet (IIP), is split into a Header subject to compression and a Payload (see <xref target="sec-schc-ipsec-integration"/> for more details). The process in the IIPC pertains to the compression and decompression of fields of the Header of the IIP. For outbound packets, after IIPC, ESP incorporates the resulting SCHC Packet and the (unaltered) Payload of the IIP into the ESP Data Payload of a Clear Text ESP packet (CTE) (refer to <xref target="fig-esp"/>). In the case of inbound packets, decompression occurs after the compressed Header is retrieved from the ESP Payload Data within the CTE.</t>
          </li>
          <li>
            <t>Clear Text ESP Compression (CTEC): This process pertains to the compression and decompression of the segment of the ESP packet that is covered by encryption. This encompasses the ESP Data Payload and the ESP Trailer, which includes the Padding, Pad Length, and Next Header fields, as illustrated in <xref target="fig-esp"/>. For the CTEC stage, only these three ESP Trailer fields are eligible for compression. For outbound packets, ESP subsequently encrypts the compressed CTE packet. For inbound packets, decompression takes place following the decryption process of the ESP.</t>
          </li>
          <li>
            <t>Encrypted ESP Compression (EEC): This process pertains to the compression and decompression of the Encrypted ESP packet (EE), which consists of the ESP Header, the encrypted payload, and the Integrity Check Value (ICV). Since neither the encrypted payload nor the ICV can be compressed, only the ESP Header, specifically the SPI and SN fields, is subject to compression.</t>
          </li>
        </ol>
        <t><xref target="fig-arch"/> depicts the incorporation of Diet-ESP compressors within the IPsec framework.</t>
        <figure anchor="fig-arch">
          <name>SCHC Integration into the IPsec Stack. Packets are described for IPsec in tunnel mode. C(.) and DC(.) designate compression/decompression for the fields inside, and E{.} designates encryption. IIP refers to the Inner IP packet, EH refers to the ESP Header, and ET refers to the ESP Trailer. IIPC, CTEC and EEC respectively designate the Inner IP Compressor, the Clear Text ESP Compressor, and the Encrypted ESP Compressor.</name>
          <artwork align="center"><![CDATA[
Endpoint                                 Endpoint
+------------------------+               +------------------------+
| Inner IP packet        |               | Inner IP packet        | 
|   (Outbound)           |               |    (Inbound)           |
+------------------------+               +------------------------+
========|=================================================^========
IPsec   |                                                 |
+------------------------+                                |
| SA lookup              |                                |
+------------------------+                                |
========|=================================================|========
ESP     |                                                 |
        |       +-------------------------------------+   |
        |       | Security Association                |   |                           
        |       |   - Attributes for Rule Derivation  |   |
        |       +-------------------------------------+   | 
        |       |  Derivation of the IIPC Rule,       |   |
        |       |   CTEC Rule, and EEC Rule           |   |
        |       +-------------------------------------+   | 
        |                                                 |
        v                                                 |            
+------------------------+               +------------------------+
| IIPC:                  |               | IIPC:                  |
| |C(Header)|Payload|    |               | DC(C(Header))|Payload| |
+------------------------+               +------------------------+ 
| Formation of           |               | Extraction of          |
| Clear Text ESP Packet  |               | Data Payload           |
+------------------------+               +------------------------+
| CTEC:                  |               | CTEC:                  |
| |C(Header)|            |               | |C(Header)|            |     
|   Payload|C(ET)|       |               |   Payload|DC(C(ET))|   |               
+------------------------+               +------------------------+
| Encryption             |               | Decryption             |
+------------------------+               +------------------------+
| Formation of           |               | Parsing                |
| Encrypted ESP Packet   |               | Encrypted ESP          |
+------------------------+               +------------------------+
| EEC:                   |               | EEC:                   |  
| |C(EH)|E{C(Header)|    |               | DC(C(EH))|E{C(Header)| |
|   Payload|C(ET)}|ICV|  |               |   Payload|C(ET)}|ICV|  |
+------------------------+               +------------------------+
        |                                | SA lookup              |
        |                                +------------------------+
========|=================================================^========
        |                                                 |
        v                                                 | 
Outbound Traffic                                  Inbound Traffic 
]]></artwork>
        </figure>
        <t>IPsec requires that both endpoints agree on a shared context known as the Security Association (SA). This SA is established via IKEv2 and encompasses all Attributes for Rule Derivation (AfRD) (refer to <xref target="sec-afrg"/>) essential for formulating the Rules for each compressor defined in <xref target="sec-3c"/>, specifically the Inner IP packet Compressor (IIPC), the Clear Text ESP Compressor (CTEC), and the Encrypted ESP Compressor (EEC).</t>
        <t>When an Inner IP packet (IIP) is received, IPsec identifies the SA linked to that packet. Upon the ESP determining the IIPC Rule from the AfRD contained within the SA, the IIPC pre-processes the the IIP and separates it into Header and Payload. Only the Header is sent for compression. The compressed Header is composed of RuleID, Compressed Residue, and an optional Padding field. The original Payload of the IIP is then appended after the compressed Header, resulting in an IIPC packet with format |C(Header)|Payload| where C(.) indicates compression. Subsequently, ESP constructs the Clear Text ESP packet (CTE). The CTEC Rule, which is derived from the AfRD of the SA, allows for the compression of the CTE, resulting in a CTEC packet with format |C(Header)|Payload|C(ET)| where ET represents the ESP Trailer. Then, ESP encrypts the ESP Data Payload, computes the Integrity Check Value (ICV), and forms the Encrypted ESP packet (EE) formatted as |EH|E{C(Header)|Payload|C(ET)}|ICV|, where EH represents the ESP Header and E{.} indicates encryption. The EEC Rule that has been derived from the AfRD of the SA, is then utilized to compress the EE, resulting in an EEC packet with format |C(EH)|E{C(Header)|Payload|C(ET)}|ICV|. The resulting compressed ESP packet is integrated into an IP packet and transmitted as outbound traffic.</t>
        <t>For inbound traffic, the endpoint extracts the Security Parameter Index (SPI) from the compressed EE, along with any other selectors from the packet, to conduct a lookup for the SA. As outlined in <xref target="sec-sec"/>, since the SPI is derived from a potentially compressed ESP Header, there may be instances where the endpoint must explore multiple options, potentially leading to several lookups or, in the worst-case scenario, multiple signature verifications (see <xref target="sec-sec"/> for a more detailed discussion).</t>
        <t>Once the SA is retrieved, the ESP accesses the AfRD to ascertain the EEC Rule and proceeds to decompress the EE. The ESP verifies the signature prior to decryption. Following this, the decompressor applies the CTEC Rule derived from the AfRD of the SA, allowing for the subsequent decompression. Finally, ESP extracts the Data Payload from the CTE packet, retrieves the IIPC Rule and decompresses the Header.</t>
        <t>Note that implementations MAY differ from the architectural description but it is assumed that the output will be the same.</t>
      </section>
      <section anchor="the-scope-of-schc-in-this-specification">
        <name>The Scope of SCHC in this Specification</name>
        <t>SCHC <xref target="RFC8724"/> offers a mechanism for header compression as well as an optional fragmentation feature. SCHC facilitates the compression and decompression of headers by utilizing a common context that may encompass multiple Rules. Each Rule is designed to correspond with specific values or ranges of values within the header fields. When a Rule is successfully matched, the corresponding header fields are substituted with the Rule ID and the Compression Residue. The Compression Residue for the packet header is the concatenation of the non-empty residues for each field of the header. The Compression Residue is directly followed by the packet payload and an optional padding to ensure byte alignment.</t>
        <t>This document utilizes SCHC as a practical means to illustrate the capability to compress and decompress a structured payload. It is important to note that any elements of SCHC that pertain to aspects other than compression or decompression, such as fragmentation, fall outside the purview of this document. The reference to SCHC herein is solely for descriptive purposes related to compression and decompression, and it is not anticipated that the general SCHC framework will be integrated into the ESP implementation. The structured payloads addressed in this specification pertain to internal structures managed by ESP for the processing of an IP packet. Consequently, the compression and decompression processes outlined in this document represent supplementary steps for the ESP stack in handling the ESP packet.</t>
      </section>
      <section anchor="diet-esp-rules-and-context">
        <name>Diet-ESP Rules and Context</name>
        <t>In IPsec, the process of encryption or decryption between IPsec peers necessitates a common context known as a Security Association (SA). More broadly, the SA encompasses all essential parameters required by the ESP to handle both inbound and outbound packets. SAs are unidirectional. Furthermore, IPsec can link both outbound and inbound IP packets to the SA through Traffic Selectors (TS) or Security Parameter Index (SPI). This capability allows IPsec to uniquely associate outbound and inbound packets with a specific context (SA), which contains all pertinent information for IPsec processing.</t>
        <t>This document adopts a comparable methodology for compression and decompression, ensuring that the SA includes all necessary parameters to create the Rules applicable for compressing or decompressing each structured payload. The Rule associated with each structured payload is generated based on specific parameters referred to in this document as Attributes for Rule Derivation (AfRD) (see <xref target="sec-afrg"/> for a more detailed description). These AfRDs are negotiated through IKEv2 <xref target="RFC7296"/>, and in such cases, they are likely already included in the SA. Any additional missing AfRDs are negotiated via <xref target="I-D.ietf-ipsecme-ikev2-diet-esp-extension"/>.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>ESP Header Compression:</dt>
        <dd>
          <t>A method to reduce the size of ESP headers and trailer using predefined compression rules and contexts to improve efficiency.</t>
        </dd>
        <dt>ESP Trailer:</dt>
        <dd>
          <t>A set of fields added at the end of the ESP payload, including Padding, Pad Length, and Next Header, used to ensure alignment and indicate the next protocol.</t>
        </dd>
        <dt>Inner IP C/D (IIPC):</dt>
        <dd>
          <t>Process that compresses/decompresses the inner IP packet headers.</t>
        </dd>
        <dt>Clear Text ESP C/D (CTEC):</dt>
        <dd>
          <t>Process that compresses/decompresses all fields that will later be encrypted by ESP, which include the ESP Data Payload and ESP Trailer.</t>
        </dd>
        <dt>Encrypted ESP C/D (EEC):</dt>
        <dd>
          <t>Process that compresses/decompresses ESP fields not encrypted by ESP.</t>
        </dd>
        <dt>Security Parameter Index (SPI):</dt>
        <dd>
          <t>As defined in <xref section="4.1" sectionFormat="comma" target="RFC4301"/>.</t>
        </dd>
        <dt>Sequence Number (SN):</dt>
        <dd>
          <t>As defined in <xref section="2.2" sectionFormat="comma" target="RFC4303"/>.</t>
        </dd>
        <dt>Static Context Header Compression (SCHC):</dt>
        <dd>
          <t>A framework for header compression designed for LPWANs, as defined in <xref target="RFC8724"/>.</t>
        </dd>
        <dt>Static Context Header Compression Rules (SCHC Rules):</dt>
        <dd>
          <t>As defined in <xref target="RFC8724"/></t>
        </dd>
        <dt>RuleID:</dt>
        <dd>
          <t>A unique identifier for each Rule part of the Diet-ESP context.</t>
        </dd>
        <dt>SCHC Parameters:</dt>
        <dd>
          <t>A set of predefined values used for SCHC compression and decompression, ensuring byte alignment and proper packet formatting based on the SCHC profile.</t>
        </dd>
        <dt>Traffic Selector (TS):</dt>
        <dd>
          <t>A set of parameters (e.g., IP address range, port range, and protocol) used to define which traffic should be protected by a specific Security Association (SA).</t>
        </dd>
      </dl>
      <t>It is assumed that the reader is familiar with other SCHC terminology defined in <xref target="RFC8376"/>, <xref target="RFC8724"/>, and eventually <xref target="I-D.ietf-schc-architecture"/>.</t>
    </section>
    <section anchor="sec-schc-ipsec-integration">
      <name>Diet-ESP Integration into the IPsec Stack</name>
      <section anchor="schc-parameters-for-diet-esp">
        <name>SCHC Parameters for Diet-ESP</name>
        <t>The SCHC Packet <xref target="RFC8724"/> is always in the form:</t>
        <figure anchor="fig-schc-compressed-packet-format">
          <name>SCHC Packet</name>
          <artwork align="center"><![CDATA[
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+---------...----------+~~~~~~~~~+---------------+
|   RuleID    | Compression Residue  | Payload | SCHC padding  | 
+-+-+-+-+-+-+-+---------...----------+~~~~~~~~~+---------------+
|----------- SCHC Header ------------|         |-- as needed --|
]]></artwork>
        </figure>
        <t>The RuleID is a unique identifier for each SCHC Rule. It is included in packets to ensure the receiver applies the correct decompression rule, maintaining consistency in packet processing. Note that the Rule ID does not need to be explicitly agreed upon and can be defined independently by each party. Furthermore, <xref target="RFC8724"/> indicates that the way the RuleID is sent is left open to the profile specification. The RuleID in Diet-ESP is expressed as 1 byte but it can be elided as there is a unique Rule determined for the compressors. The 1 byte may be used in future implementations to support multiple flows over the same SA.</t>
        <t>SCHC padding in SCHC serves the purpose of aligning data to a designated boundary, which is typically byte-aligned or aligned to 8 bits. This document presumes that this field is not utilized in CET and EEC. This document outlines a simpler form of padding for byte-alignment, as detailed in section <xref target="sec-iipc"/>. Such alignment is essential to ensure that encryption is applied to data that is byte-aligned. The rationale for employing a padding method other than SCHC Padding is to accommodate the length of the compressed ESP Payload Data.</t>
        <t>Another variable required for the C/D in Diet-ESP is the Maximum Packet Size (MAX_PACKET_SIZE) determined by the specific IPsec ESP configuration and the underlying transport, but it is typically aligned with the network's MTU. The size constraints are optimized based on the available link capacity and negotiated parameters between endpoints.</t>
      </section>
      <section anchor="sec-afrg">
        <name>Attributes for Rules Derivation</name>
        <t>The list of attributes for Rules Derivation (AfRD) is shown in <xref target="tab-ehc-ctx-esp"/>. These attributes are used to express the various compressions that operate at the IIPC, CTEC, and EEC.</t>
        <t>As outlined in <xref target="sec-schc-ipsec-integration"/>, this specification does not detail the process by which the AfRD are established between peers. Instead, such negotiations are addressed in <xref target="I-D.ietf-ipsecme-ikev2-diet-esp-extension"/>. However, the AfRD can be classified into two distinct categories. The first category encompasses AfRD that are negotiated through a specific IKEv2 extension tailored for the negotiation of AfRD linked to a particular profile, the Diet-ESP profile in this context. The AfRD referenced in <xref target="tab-ehc-ctx-esp"/> in this category are: the DSCP Compression/Decompression Action (CDA) dscp_cda, the ECN CDA ecn_cda, the Flow Label CDA flow_label_cda, the ESP alignment alignment, the ESP SPI Least Significant Bits (LSB) esp_spi_lsb, and the ESP Sequence Number LSB esp_sn_lsb.</t>
        <t>The second category pertains to AfRD that are negotiated through IKEv2 exchanges or extensions that are not specifically designed for compression purposes. This category includes AfRD associated with TS, as identified in <xref target="tab-ehc-ctx-esp"/>, which are the TS IP Version ts_ip_version, the TS IP Source Start ts_ip_src_start, the TS IP Source End ts_ip_src_end, the TS IP Destination Start ts_ip_dst_start, the TS IP Destination End ts_ip_dst_end, the TS Protocol ts_proto, the TS Port Source Start ts_port_src_start, the TS Port Source End ts_port_src_end, the TS Port Destination Start ts_port_dst_start, and the  TS Port Destination End ts_port_dst_end. These AfRD are derived from the Traffic Selectors established through TSi/TSr payloads during the IKEv2 CREATE_CHILD_SA exchange, as described in <xref section="3.13" sectionFormat="comma" target="RFC7296"/>. The AfRD IPsec Mode designated as ipsec_mode in <xref target="tab-ehc-ctx-esp"/> is determined by the presence or absence of the USE_TRANSPORT_MODE Notify Payload during the CREATE_CHILD_SA exchange, as detailed in <xref section="1.3.1" sectionFormat="comma" target="RFC7296"/>. The AfRD Tunnel IP designated as tunnel_ip in <xref target="tab-ehc-ctx-esp"/> is obtained from the IP address of the IKE messages exchanged during the CREATE_CHILD_SA process, as noted in <xref section="1.1.3" sectionFormat="comma" target="RFC7296"/>. The AfRDs designated as ESP Encryption Algorithm esp_encr and ESP Security Parameter Index (SPI) esp_spi in <xref target="tab-ehc-ctx-esp"/> are established through the SAi2/SAr2 payloads during the CREATE_CHILD_SA exchange, while the AfRD designated as ESP Sequence Number esp_sn in <xref target="tab-ehc-ctx-esp"/> is initialized upon the creation of the Child SA and incremented for each subsequent ESP message. The DSCP values identified as dscp_list in <xref target="tab-ehc-ctx-esp"/> are established through the DSCP Notify Payload <xref target="I-D.mglt-ipsecme-dscp-np"/>.</t>
        <t>The ability to derive the IIP Compressor Rules for the internal IP packet from the agreed Traffic Selectors is indicated by the variable iipc_profile.</t>
        <table anchor="tab-ehc-ctx-esp">
          <name>Attributes for Rule Derivation (AfRD) to generate IIPC, CTEC and EEC Rules in Diet-ESP</name>
          <thead>
            <tr>
              <th align="left">Variable</th>
              <th align="left">Possible Values</th>
              <th align="left">Reference</th>
              <th align="left">Compressor</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">iipc_profile</td>
              <td align="left">"iipc_diet-esp", "iipc_not_compressed"</td>
              <td align="left">ThisRFC</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">dscp_cda</td>
              <td align="left">"not_compressed", "lower", "sa"</td>
              <td align="left">ThisRFC</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ecn_cda</td>
              <td align="left">"not_compressed", "lower"</td>
              <td align="left">ThisRFC</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">flow_label_cda</td>
              <td align="left">"not_compressed", "lower", "generated", "zero"</td>
              <td align="left">ThisRFC</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_ip_version</td>
              <td align="left">"IPv4-only", "IPv6-only"</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_ip_src_start</td>
              <td align="left">IPv4 or IPv6 address</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_ip_src_end</td>
              <td align="left">IPv4 or IPv6 address</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_ip_dst_start</td>
              <td align="left">IPv4 or IPv6 address</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_ip_dst_end</td>
              <td align="left">IPv4 or IPv6 address</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_proto</td>
              <td align="left">TCP, UDP, UDP-Lite, SCTP, ANY, ...</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_port_src_start</td>
              <td align="left">Port number</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_port_src_end</td>
              <td align="left">Port number</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_port_dst_start</td>
              <td align="left">Port number</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">ts_port_dst_end</td>
              <td align="left">Port number</td>
              <td align="left">RFC7296</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">dscp_list</td>
              <td align="left">list of DSCP numbers</td>
              <td align="left">RFCYYYY</td>
              <td align="left">IIPC</td>
            </tr>
            <tr>
              <td align="left">alignment</td>
              <td align="left">"8 bit", "16 bit", "32 bit", "64 bit"</td>
              <td align="left">ThisRFC</td>
              <td align="left">CTEC</td>
            </tr>
            <tr>
              <td align="left">esp_trailer</td>
              <td align="left">"Mandatory", "Optional"</td>
              <td align="left">ThisRFC</td>
              <td align="left">CTEC</td>
            </tr>
            <tr>
              <td align="left">ipsec_mode</td>
              <td align="left">"Tunnel", "Transport"</td>
              <td align="left">RFC4301</td>
              <td align="left">CTEC</td>
            </tr>
            <tr>
              <td align="left">tunnel_ip</td>
              <td align="left">IPv4 or IPv6 address</td>
              <td align="left">RFC4301</td>
              <td align="left">CTEC</td>
            </tr>
            <tr>
              <td align="left">esp_encr</td>
              <td align="left">ESP Encryption Algorithm</td>
              <td align="left">RFC4301</td>
              <td align="left">CTEC</td>
            </tr>
            <tr>
              <td align="left">esp_spi</td>
              <td align="left">ESP SPI</td>
              <td align="left">RFC4301</td>
              <td align="left">EEC</td>
            </tr>
            <tr>
              <td align="left">esp_spi_lsb</td>
              <td align="left">0-32</td>
              <td align="left">ThisRFC</td>
              <td align="left">EEC</td>
            </tr>
            <tr>
              <td align="left">esp_sn</td>
              <td align="left">ESP Sequence Number</td>
              <td align="left">RFC4301</td>
              <td align="left">EEC</td>
            </tr>
            <tr>
              <td align="left">esp_sn_lsb</td>
              <td align="left">0-32</td>
              <td align="left">ThisRFC</td>
              <td align="left">EEC</td>
            </tr>
          </tbody>
        </table>
        <t>Any variable starting with "ts_" is associated with the Traffic Selectors (TSi/TSr) of the SA. 
The notation is introduced by this specification but the definitions of the variables are in <xref target="RFC4301"/> and <xref target="RFC7296"/>.</t>
        <t>The Traffic Selectors may result in a quite complex expression, and this specification restricts that complexity. 
This specification restricts the resulting TSi/TSr to a single type of IP address (IPv4 or IPv6), a single protocol (e.g., UDP, TCP, or ANY), a single port range for source and destination. This specification presumes that the Traffic Selectors can be articulated as a result of CREATE_CHILD_SA with only one Traffic Selector <xref section="3.13.1" sectionFormat="comma" target="RFC7296"/> in both TSi and TSr payloads (as described in <xref section="3.13" sectionFormat="comma" target="RFC7296"/>). The TS Type MUST be either TS_IPV4_ADDR_RANGE or TS_IPV6_ADDR_RANGE.</t>
        <t>Let the resulting Traffic Selectors TSi/TSr be expressed via the Traffic Selector structure defined in <xref section="3.13.1" sectionFormat="comma" target="RFC7296"/>. We designate the local TS the TS - either TSi or TSr - sent by the local peer. Conversely we designate as remote TS the TS - either TSi or TSr - sent by the remote peer.</t>
        <t>The details of each parameter are the following:</t>
        <dl>
          <dt>iipc_profile:</dt>
          <dd>
            <t>designates the behavior of the IIPC layer. When set to "iipc_not_compressed" IIPC is not performed. This specification describes IIPC that corresponds to the "iipc_diet-esp" profile.</t>
          </dd>
          <dt>flow_label_cda:</dt>
          <dd>
            <t>indicates the Flow Label CDA, that is how the Flow Label field of the inner IPv6 packet or the Identification field of the inner IPv4 packet is compressed / decompressed - See <xref target="sec-cda"/> for more information. In a nutshell, "not_compressed" indicates that Flow Label (resp. Identification) is not compressed and the field is sent as-is using value-sent. "lower" ( using compute-* ) indicates the value is read from the outer IP header - eventually with some adaptations when inner IP packet and outer IP packets have different versions. This field is computed from the outer IP header using compute-* ( MO: ignore, CDA: compute-* )."generated" indicates the value is re-generated at the decompressor side ( CDA: compute-* ). In that case, the decompressed value may take a different value compared to its original value. "zero" indicates the field is removed by matching against a target value of 0 (MO: equal, CDA: not-sent).
See <xref target="sec-cda"/> for further details on the applied CDA logic.</t>
          </dd>
          <dt>dscp_cda:</dt>
          <dd>
            <t>indicates the DSCP CDA, that is how the DSCP values of the inner IP packet are compressed / decompressed - See <xref target="sec-cda"/> for more information. In a nutshell, "not_compressed" indicates that DSCP are not compressed. "lower" indicates the value is read from the outer IP header - eventually with some adaptations when inner IP packet and outer IP packets have different versions ( compute-* ). "sa" indicates that compression is performed according to the pre-negotioated list of DSCP values (dscp_list) agreed by the SA, using SCHC's MO and index (CDA).
See <xref target="sec-cda"/> for rule examples.</t>
          </dd>
          <dt>ecn_cda:</dt>
          <dd>
            <t>indicates ECN CDA, that is how the ECN values of the inner IP packet are compressed / decompressed - See <xref target="sec-cda"/> for more information. In a nutshell, "not_compressed" indicates that DSCP are not compressed. "lower" indicates the value is read from the outer IP header using compute-* (eventually with some adaptations when inner IP packet and outer IP packets have different versions).</t>
          </dd>
          <dt>ts_ip_version:</dt>
          <dd>
            <t>designates the TS IP version. Its value is set  to "IPv4-only" when only IPv4 IP addresses are considered and to "IPv6-only" when only IPv6 addresses are considered.
Practically, when IKEv2 is used, it means that the agreed TSi or TSr results only in a mutually exclusive combination of TS_IPV4_ADDR_RANGE or TS_IPV6_ADDR_RANGE payloads. If TS Type of the resulting TSi/TSr is set to TS_IPV4_ADDR_RANGE, ts_ip_version takes the value "IPv4-only". Respectively, if TS Type is set to TS_IPV6_ADDR_RANGE, ts_ip_version is set to "IPv6-only".</t>
          </dd>
          <dt>ts_ip_src_start:</dt>
          <dd>
            <t>designates the TS IP Source Start, that is the starting value range of source IP addresses of the inner packet and has the same meaning as the Starting Address field of the local TS.</t>
          </dd>
          <dt>ts_ip_src_end:</dt>
          <dd>
            <t>designates TS IP Source End, that is the high end value range of source IP addresses of the inner packet and has the same meaning as the Ending Address field of the local TS.</t>
          </dd>
          <dt>ts_ip_dst_start:</dt>
          <dd>
            <t>designates the TS IP Destination Start, that is the starting value range of destination IP addresses of the inner packet and has the same meaning as the Starting Address field of the remote TS.</t>
          </dd>
          <dt>ts_ip_dst_end:</dt>
          <dd>
            <t>designates the TS IP Destination End, that is the high end value range of destination IP addresses of the inner packet and has the same meaning as the Ending Address field of the remote TS.</t>
          </dd>
          <dt>ts_proto:</dt>
          <dd>
            <t>designates the TS Protocol, that is the Protocol ID of the resulting TSi/TSr. This profile considers the specific protocol values "TCP", "UDP", "UDP-Lite", "SCTP", and "ANY". The representation of "ANY" is given in <xref section="4.4.4.2" sectionFormat="comma" target="RFC4301"/>.</t>
          </dd>
          <dt>ts_port_src_start:</dt>
          <dd>
            <t>designates the TS Port Source Start, that is the the starting value of the source port range of the inner packet and has the same meaning as the Start Port field of the local TS.</t>
          </dd>
          <dt>ts_port_src_end:</dt>
          <dd>
            <t>designates the TS Port Source End, that is the high end value range of the source port range of the inner packet and has the same meaning as the End Port field of the local TS.</t>
          </dd>
          <dt>ts_port_dst_start:</dt>
          <dd>
            <t>designates TS Port Destination Start, that is the starting value of the destination port range of the inner packet and has the same meaning as the Start Port field of the remote TS.</t>
          </dd>
          <dt>ts_port_dst_end:</dt>
          <dd>
            <t>designates TS Port Destination End, that is the high end value range of the destination port range of the inner packet and has the same meaning as the End Port field of the remote TS.</t>
          </dd>
        </dl>
        <t>In Diet-ESP compression, fields such as IP addresses and port numbers are split into a stable prefix and a variable suffix. The stable part is captured in the rule as the Target Value (TV), expressed with prefix_bits(start, end). The Matching Operator MO = MSB(x) verifies that the most significant x bits of the Field Value (FV) match this prefix. When the match succeeds, the Compression/Decompression Action CDA = LSB transmits only the remaining low-order bits (FL - x), where FL is the full field length in bits.</t>
        <t>Formally, the operation of MO = MSB(x) is defined as: 
<tt>(FV &amp; (((1 &lt;&lt; x) - 1) &lt;&lt; (FL - x))) == (TV &amp; (((1 &lt;&lt; x) - 1) &lt;&lt; (FL - x)))</tt></t>
        <t>where FL is the total field length in bits. The parameter x is computed as:</t>
        <t><tt>x = FL - prefix_bits_length</tt></t>
        <dl>
          <dt>dscp_list:</dt>
          <dd>
            <t>designates the list of DSCP values associated to the inner traffic - see for example <xref target="I-D.mglt-ipsecme-dscp-np"/>. These are not Traffic Selectors, but the compression mandates that the packets take one of these listed DSCP values.</t>
          </dd>
          <dt>alignment:</dt>
          <dd>
            <t>designates the ESP alignment as defined by <xref target="RFC4303"/>.</t>
          </dd>
          <dt>esp_trailer:</dt>
          <dd>
            <t>When configured to "Mandatory," it signifies that the implementation requires the ESP Trailer to include a Next Header and a Pad Len field, as outlined in <xref target="RFC4303"/>. This requirement primarily aims to ensure compatibility with current hardware implementations of ESP, as detailed in <xref target="RFC4303"/>. Conversely, if set to "Optional," it indicates that the implementation is capable of supporting the compression of the ESP Trailer.</t>
          </dd>
          <dt>ipsec_mode:</dt>
          <dd>
            <t>designates the IPsec Mode defined in <xref target="RFC4301"/>. In this document, the possible values are "tunnel" for the Tunnel mode and "transport" for the Transport mode.</t>
          </dd>
          <dt>tunnel_ip:</dt>
          <dd>
            <t>designates the Tunnel IP address of the tunnel defined in <xref target="RFC4301"/>.
This field is only applicable when the Tunnel mode is used.
That IP address can be an IPv4 or IPv6 address.</t>
          </dd>
          <dt>esp_encr:</dt>
          <dd>
            <t>designates the ESP Encryption Algorithm - also designated as Transform 1 in <xref section="3.3.2" sectionFormat="comma" target="RFC7296"/>. The algorithm is needed to determine whether the ESP Payload Data needs to be aligned to some predefined block size and if the ESP Pad Length and Padding fields can be compressed.  For the purpose of compression it is RECOMMENDED to use algorithms that already compressed their IV <xref target="RFC8750"/>.</t>
          </dd>
          <dt>esp_spi:</dt>
          <dd>
            <t>designates the Security Parameter Index defined in <xref target="RFC4301"/>.</t>
          </dd>
          <dt>esp_spi_lsb:</dt>
          <dd>
            <t>designates the LSB to be considered for the compressed SPI. A value of 32 for esp_spi_lsb will leave the SPI unchanged.</t>
          </dd>
          <dt>esp_sn:</dt>
          <dd>
            <t>designates the ESP Sequence Number (SN) field defined in <xref target="RFC4301"/>.</t>
          </dd>
          <dt>esp_sn_lsb:</dt>
          <dd>
            <t>designates the LSB to be considered for the compressed SN. It works similarly to ESP SPI LSB (see esp_spi_lsb).</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-cda">
      <name>Examples of Diet-ESP SCHC Rule Tables</name>
      <t>The tables in this section provide examples of SCHC compression rules for Diet-ESP in IPsec. The Compression/Decompression Actions (CDAs), derived from the AfRD discussed in Section <xref target="sec-afrg"/>, specify how various IPv6, UDP/TCP, and ESP header fields are compressed and decompressed,</t>
      <t><xref target="tab-diet-esp-rule-iipc"/>, <xref target="tab-diet-esp-rule-ctec"/>, and <xref target="tab-diet-esp-rule-eec"/> collectively represent an example configuration for Diet-ESP compression, where each compressor stage applies its own dedicated rule as per <xref target="RFC8724"/> Section 7.2. In <xref target="tab-diet-esp-rule-iipc"/>, the field <tt>flow_label_cda</tt> is set to lower, which results in <tt>MO = ignore</tt> and <tt>CDA = compute-*</tt>, indicating the value is derived from the outer header. The <tt>dscp_cda</tt> is set to <tt>*not_compressed*</tt>, corresponding to <tt>MO = ignore</tt> and <tt>CDA = value-sent</tt>, meaning the DSCP field is transmitted in full. IPv6 address and port fields are compressed using the MSB/LSB strategy, where the <tt>MO = MSB(x)</tt> checks whether the most significant <tt>x</tt> bits of the Field Value (<tt>FV</tt>) equal the rule's Target Value (<tt>TV</tt>), and transmits only the variable suffix (<tt>FL - x</tt> bits).</t>
      <t>The ESP-related fields, including padding and alignment, are compressed using a separate rule in <xref target="tab-diet-esp-rule-ctec"/>, while the ESP SPI and Sequence Number are compressed independently using the rule in <xref target="tab-diet-esp-rule-eec"/>. Each rule includes only the fields visible and relevant to its corresponding compression stage.</t>
      <section anchor="diet-esp-with-inner-ip-and-udptcp-header-compression">
        <name>Diet-ESP with Inner IP and UDP/TCP Header Compression</name>
        <section anchor="inner-ip-compression-iipc-rule">
          <name>Inner IP Compression (IIPC) Rule</name>
          <t>This rule defines the compression behavior for the IIPC, which operates before ESP encapsulation and encryption. The example handles all fields from the inner IPv6 and transport layer headers (e.g., UDP, TCP, SCTP) that are visible at this stage.</t>
          <t>Version, Next Header, and Payload Length are elided or derived based on known values or outer headers.</t>
          <t>Traffic Class fields (DSCP and ECN) are partially elided or transmitted depending on their CDA.</t>
          <t>Flow Label is computed from the outer header (<tt>flow_label_cda = lower</tt>).</t>
          <t>Source/Destination Addresses and Ports are compressed using MSB/LSB strategy based on Traffic Selectors.</t>
          <t>Checksum and UDP Length are elided and computed at the decompressor.</t>
          <table anchor="tab-diet-esp-rule-iipc">
            <name>IIPC Rule: Compression of Inner IP and Transport Headers</name>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">FL</th>
                <th align="left">FP</th>
                <th align="left">DI</th>
                <th align="left">TV</th>
                <th align="left">MO</th>
                <th align="left">CDA</th>
                <th align="left">Sent [bits]</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Version</td>
                <td align="left">3</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">ts_ipversion</td>
                <td align="left">equal</td>
                <td align="left">not-sent</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">DSCP</td>
                <td align="left">6</td>
                <td align="left">1</td>
                <td align="left">Dw</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">value-sent</td>
                <td align="left">6</td>
              </tr>
              <tr>
                <td align="left">ECN</td>
                <td align="left">2</td>
                <td align="left">1</td>
                <td align="left">Dw</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">value-sent</td>
                <td align="left">2</td>
              </tr>
              <tr>
                <td align="left">Flow Label</td>
                <td align="left">20</td>
                <td align="left">1</td>
                <td align="left">Dw</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">compute-*</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Payload Length</td>
                <td align="left">16</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">compute-*</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Next Header</td>
                <td align="left">8</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">ts_proto</td>
                <td align="left">equal</td>
                <td align="left">not-sent</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Hop Limit</td>
                <td align="left">8</td>
                <td align="left">1</td>
                <td align="left">Dw</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">compute-*</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Source Address</td>
                <td align="left">128</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">prefix_bits<br/>(ts_ip_src_start, ts_ip_src_end)</td>
                <td align="left">MSB(x)</td>
                <td align="left">LSB</td>
                <td align="left">FL-x</td>
              </tr>
              <tr>
                <td align="left">Destination Address</td>
                <td align="left">128</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">prefix_bits<br/>(ts_ip_dst_start, ts_ip_dst_end)</td>
                <td align="left">MSB(x)</td>
                <td align="left">LSB</td>
                <td align="left">FL-x</td>
              </tr>
              <tr>
                <td align="left">Source Port (UDP/TCP)</td>
                <td align="left">16</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">prefix_bits<br/>(ts_port_src_start, ts_port_src_end)</td>
                <td align="left">MSB(x)</td>
                <td align="left">LSB</td>
                <td align="left">FL-x</td>
              </tr>
              <tr>
                <td align="left">Destination Port (UDP/TCP)</td>
                <td align="left">16</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">prefix_bits<br/>(ts_port_dst_start, ts_ip_src_end)</td>
                <td align="left">MSB(x)</td>
                <td align="left">LSB</td>
                <td align="left">FL-x</td>
              </tr>
              <tr>
                <td align="left">Checksum</td>
                <td align="left">16</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">compute-*</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">UDP Length</td>
                <td align="left">16</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">compute-*</td>
                <td align="left">0</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="clear-text-esp-compression-ctec-rule">
          <name>Clear Text ESP Compression (CTEC) Rule</name>
          <t>This rule is used by the CTEC compressor, which processes ESP-specific fields just before encryption. These fields primarily deal with formatting and alignment.</t>
          <t>ESP Padding is used to ensure that the ESP payload aligns to the encryption algorithm's block size or protocol requirements. It is not sent and is instead calculated (<tt>CDA = compute-*</tt>).</t>
          <t>Byte Alignment ensures that the SCHC packet respects the alignment required by ESP and IPv6 extension header parsing (e.g., 64-bit alignment).</t>
          <t>These fields are handled separately because they are relevant only at the Clear Text ESP Packet construction stage and are not part of the inner packet or ESP Header fields.</t>
          <table anchor="tab-diet-esp-rule-ctec">
            <name>CTEC Rule: ESP Trailer and Alignment Compression</name>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">FL</th>
                <th align="left">FP</th>
                <th align="left">DI</th>
                <th align="left">TV</th>
                <th align="left">MO</th>
                <th align="left">CDA</th>
                <th align="left">Sent [bits]</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">ESP Padding</td>
                <td align="left">-</td>
                <td align="left">-</td>
                <td align="left">-</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">compute-*</td>
                <td align="left">0</td>
              </tr>
              <tr>
                <td align="left">Byte Alignment</td>
                <td align="left">8</td>
                <td align="left">1</td>
                <td align="left">Bi</td>
                <td align="left">-</td>
                <td align="left">ignore</td>
                <td align="left">compute-*</td>
                <td align="left">0</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="encrypted-esp-compression-eec-rule">
          <name>Encrypted ESP Compression (EEC) Rule</name>
          <t>This rule focuses on compressing the ESP Header fields that are still visible post-encryption. These fields are typically stable over a session and can be compressed without compromising lookup reliability or replay protection.</t>
          <t>SPI (Security Parameter Index) and Sequence Number (SN) are compressed using the Least Significant Bits (LSB) approach.</t>
          <t>MSB(8) signifies that only 8 bits of variation need to be sent (leaving 24 fixed bits).</t>
          <table anchor="tab-diet-esp-rule-eec">
            <name>EEC Rule: ESP SPI and Sequence Number Compression</name>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">FL</th>
                <th align="left">FP</th>
                <th align="left">DI</th>
                <th align="left">TV</th>
                <th align="left">MO</th>
                <th align="left">CDA</th>
                <th align="left">Sent [bits]</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">SPI</td>
                <td align="left">32</td>
                <td align="left">1</td>
                <td align="left">Dw</td>
                <td align="left">-</td>
                <td align="left">MSB(x)</td>
                <td align="left">LSB</td>
                <td align="left">FL - x</td>
              </tr>
              <tr>
                <td align="left">SN</td>
                <td align="left">32</td>
                <td align="left">1</td>
                <td align="left">Dw</td>
                <td align="left">-</td>
                <td align="left">MSB(x)</td>
                <td align="left">LSB</td>
                <td align="left">FL - x</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="sa-based-dscp-compression-with-zeroed-flow-label">
        <name>SA-Based DSCP Compression with Zeroed Flow Label</name>
        <t><xref target="tab-diet-esp-ruleIIP-2"/>, <xref target="tab-diet-esp-ruleCTEC-2"/>, and <xref target="tab-diet-esp-ruleEE-2"/> illustrate rule examples where the DSCP field is compressed using a pre-negotiated Security Association (SA) list. Here, <tt>dscp_cda = sa</tt> results in <tt>MO = match-mapping</tt> and <tt>CDA = index</tt>, meaning the field value is matched from a list and only the index is sent. The ECN field is computed from the outer header (<tt>ecn_cda = lower</tt>), so it is not sent. The Flow Label is removed from transmission by setting a target value of 0 (<tt>flow_label_cda = zero</tt>), which results in <tt>MO = equal</tt> and <tt>CDA = not-sent</tt>.</t>
        <table anchor="tab-diet-esp-ruleIIP-2">
          <name>Example of Diet-ESP IIPC Rule table where the DSCP field is compressed using a pre-negotiated Security Association (SA) list</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">DSCP</td>
              <td align="left">match-mapping</td>
              <td align="left">index</td>
              <td align="left">3</td>
            </tr>
            <tr>
              <td align="left">ECN</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">Flow Label</td>
              <td align="left">equal (TV=0)</td>
              <td align="left">not-sent</td>
              <td align="left">0</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-diet-esp-ruleCTEC-2">
          <name>Example of Diet-ESP EEC Rule table where the DSCP field is compressed using a pre-negotiated Security Association (SA) list</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ESP Padding</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">Byte Alignment</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-diet-esp-ruleEE-2">
          <name>Example of Diet-ESP EEC Rule table where the DSCP field is compressed using a pre-negotiated Security Association (SA) list</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SPI</td>
              <td align="left">MSB(x)</td>
              <td align="left">LSB</td>
              <td align="left">FL - x</td>
            </tr>
            <tr>
              <td align="left">SN</td>
              <td align="left">MSB(x)</td>
              <td align="left">LSB</td>
              <td align="left">FL - x</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="full-header-transmission-without-compression">
        <name>Full Header Transmission Without Compression</name>
        <t><xref target="tab-diet-esp-ruleIIP-3"/>, <xref target="tab-diet-esp-ruleCTEC-3"/>, and <xref target="tab-diet-esp-ruleEE-3"/> show a configuration disabling all compression mechanisms. Every field is transmitted in full using <tt>MO = ignore</tt> and <tt>CDA = value-sent</tt>, which is the result of setting each <tt>cda</tt> attribute to <tt>not_compressed</tt> in the AfRD.</t>
        <table anchor="tab-diet-esp-ruleIIP-3">
          <name>Example of Diet-ESP IIPC Rule table with all compression mechanisms disabled</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">DSCP</td>
              <td align="left">ignore</td>
              <td align="left">value-sent</td>
              <td align="left">6</td>
            </tr>
            <tr>
              <td align="left">ECN</td>
              <td align="left">ignore</td>
              <td align="left">value-sent</td>
              <td align="left">2</td>
            </tr>
            <tr>
              <td align="left">Flow Label</td>
              <td align="left">ignore</td>
              <td align="left">value-sent</td>
              <td align="left">20</td>
            </tr>
            <tr>
              <td align="left">Payload Length</td>
              <td align="left">ignore</td>
              <td align="left">value-sent</td>
              <td align="left">16</td>
            </tr>
            <tr>
              <td align="left">Hop Limit</td>
              <td align="left">ignore</td>
              <td align="left">value-sent</td>
              <td align="left">8</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-diet-esp-ruleCTEC-3">
          <name>Example of Diet-ESP IIPC Rule table with all compression mechanisms disabled</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ESP Padding</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">Byte Alignment</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-diet-esp-ruleEE-3">
          <name>Example of Diet-ESP EEC Rule table with all compression mechanisms disabled</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SPI</td>
              <td align="left">ignore</td>
              <td align="left">value-sent</td>
              <td align="left">32</td>
            </tr>
            <tr>
              <td align="left">SN</td>
              <td align="left">ignore</td>
              <td align="left">value-sent</td>
              <td align="left">32</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="mixed-compression-strategy">
        <name>Mixed Compression Strategy</name>
        <t><xref target="tab-diet-esp-ruleIIP-4"/> to <xref target="tab-diet-esp-ruleEE-4"/> demonstrate a mixed strategy. The Flow Label is generated at the decompressor side and not transmitted, after following the attribute <tt>flow_label_cda = generated</tt>, which results in <tt>MO = ignore</tt> and <tt>CDA = compute-*</tt>. The ECN field is derived from the outer header, while the DSCP field is transmitted as-is (<tt>dscp_cda = not_compressed</tt>).</t>
        <table anchor="tab-diet-esp-ruleIIP-4">
          <name>Example of Diet-ESP IIPC Rule table with a mixed strategy</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">DSCP</td>
              <td align="left">ignore</td>
              <td align="left">value-sent</td>
              <td align="left">6</td>
            </tr>
            <tr>
              <td align="left">ECN</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">Flow Label</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-diet-esp-ruleCTEC-4">
          <name>Example of Diet-ESP IIPC Rule table with a mixed strategy</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ESP Padding</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
            <tr>
              <td align="left">Byte Alignment</td>
              <td align="left">ignore</td>
              <td align="left">compute-*</td>
              <td align="left">0</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-diet-esp-ruleEE-4">
          <name>Example of Diet-ESP EEC Rule table with a mixed strategy</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">MO</th>
              <th align="left">CDA</th>
              <th align="left">Sent [bits]</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SPI</td>
              <td align="left">MSB(x)</td>
              <td align="left">LSB</td>
              <td align="left">x</td>
            </tr>
            <tr>
              <td align="left">SN</td>
              <td align="left">MSB(x)</td>
              <td align="left">LSB</td>
              <td align="left">x</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="diet-esp-for-ipsec-in-tunnel-mode">
      <name>Diet-ESP for IPsec in Tunnel Mode</name>
      <section anchor="sec-iipc">
        <name>Inner IP Compression (IIPC)</name>
        <t>When the <tt>iipc_profile</tt> attribute is set to <tt>"iipc_not_compressed"</tt>, the inner IP Packet (IIP) is not compressed.  When <tt>iipc_profile</tt> is set to <tt>"iipc_diet-esp"</tt>, IIPC proceeds with the compression.  The Header fields subject to compression depend on the encapsulation mode. When <tt>ipsec_mode</tt> is set to <tt>"tunnel"</tt>, all Header fields of the IIP structure are subject to compression. <tt>ts_ip_version</tt> determines how the IPv6 header (resp. the IPv4 header) is compressed - see <xref target="sec-inner-ip6"/> (resp.  <xref target="sec-inner-ip4"/>). Conversely, when <tt>ipsec_mode</tt> is set to <tt>"transport"</tt>, the compression applies only to Header fields other than the IPv4 or IPv6 header fields. This means that the IPv4 and IPv6 headers remain uncompressed, while other Header fields within the IIP structure are subject to compression.</t>
        <t>Note that the SCHC packet illustrated in <xref target="fig-schc-compressed-packet-format"/> appends the padding at the end of the SCHC Packet. This approach presents notable challenges, including handling a Payload that lacks byte alignment. Furthermore, the absence of a specified Payload length would necessitate the inclusion of the padding length within the padding itself, which would require a particular padding construction akin to that utilized by the ESP Padding, thereby posing difficulties for hardware implementations.</t>
        <t>To address these issues, IIPC uses a pre-processing phase where the IIP is divided into two segments: the Header and the Payload and only the Header is considered as the candidate structure for SCHC compression. The division between Header and Payload can only occur because all the Header fields are of a fixed size. By construction, the compression process applies the defined rule to the Header, resulting in a SCHC Packet (refer to <xref target="fig-diet-esp-schc-pre-post-processing"/>) that features a Rule ID, a Compression Residue, a Padding field, and an empty SCHC Payload field.</t>
        <figure anchor="fig-diet-esp-schc-pre-post-processing">
          <name>CTEC packet construction</name>
          <artwork align="center"><![CDATA[
                            Original Packet
                    +-+-+---+-------+---------------+
                    |       IP      |    UDP/TCP    |     
                    +------+------------------------+
                    ~          Payload              ~
                    +-------------------------------+
                       /                         \     
                      /      Pre-processing       \  
       (Header)      v    (Header)                 v        
    +-+-+---+--------+--------------+   +--------------------+
    |       IP       |    TCP/UDP   |   ~       Payload      ~ 
    +-+-+---+--------+--------------+   +--------------------+
                    |                                   |     
                    v                                   |     
              SCHC Compression                          |     
    0 1 .. 6 7|<------ s bits ----->|<-0..7 bits->      |     
    +-----+---+--------...----------+------------+      |     
    | Rule ID | Compression Residue |   Padding  |      |     
    +-----+---+--------...----------+------------+      |     
                    |                                   |
                    v                                   |
                SCHC Packet                             |
                    |          Post-processing          |
                    +-----------------------------------+
                                     |     
                                     v      
                 +-------+------+------+--------+------+-----+       
    ESP Payload  |      SCHC Packet    |        Payload      |            
                 +-------+------+------+--------+------+-----+      
    ESP Trailer  |  ESP Padding |  Pad Length   | Next Header|      
                 +-------+------+------+--------+------+-----+
]]></artwork>
        </figure>
        <t>Ultimately, a post-processing phase merges the SCHC Packet with the Payload. Note that the resulting SCHC packet is byte-aligned.</t>
        <section anchor="sec-payload">
          <name>Compression of the Inner IP payload</name>
          <t>This section describes the compression of the inner IP payload. The compression described herein only affects UDP, UDP-Lite, TCP or SCTP segments. The type of segment is specified in the IP header.</t>
          <t>For UDP, UDP-Lite, TCP and SCTP segments, source ports, destination ports, and checksums are compressed. 
For source port (resp. destination port) only the least significant bits are sent. FL is set to 16 bits,  TV is set to prefix_bits( ts_port_src_start, ts_port_src_end ) ( resp. ts_port_dst_start, ts_port_dst_end ), MO is set to "MSB" and CDA to "LSB". 
The checksum is elided, FL is set to 16 bits, TV is not set, MO is set to "ignore" and CDA is set to "checksum". 
This may result in decompressing a zero-checksum UDP packet with a valid checksum, but this has no impact as a valid checksum is universally accepted.</t>
          <t>For UDP or UDP-Lite the length field is elided. FL is set to 16, TV is not set, MO is set to "ignore".</t>
        </section>
        <section anchor="sec-inner-ip6">
          <name>Compression of the Inner IPv6 header</name>
          <t>The version field is elided, FL is set to 3, TV is set to ts_ipversion, MO is set to "equal" and CDA is set to "not-sent".</t>
          <t>Traffic Class is composed of the 6 bit DSCP and 2 bit ECN.
The compression of DSCP and ECN are defined independently.</t>
          <t>DSCP values are compressed according to the dscp_cda value:</t>
          <ul spacing="normal">
            <li>
              <t>If dscp_cda is set to "not_compressed", the DSCP values are included in the inner IP header. FL is set to 6 bits, TV is not set, MO is set to "ignore", CDA is set to "sent-value".</t>
            </li>
            <li>
              <t>If dscp_cda is set to "lower", the DSCP field is elided and its value is copied from the Tunnel IP header. FL is set to 6 bits, TV is not set, MO is set to "ignore", CDA is set to "lower".</t>
            </li>
            <li>
              <t>If dscp_cda is set to "sa", DSCP is compressed according to the DSCP values of the SA. If dscp_list contains a single element, the DSCP is elided, FL is set to 6 bits, TV is set to dscp_list[0], MO is set to "equal" and CDA is set to "not-sent". If dscp_list contains more than one DSCP value, FL is set to 6 bits, TV is set to dscp_list, MO is set to "match-mapping" and the CDA is set to "mapping-sent". 
For ECN, FL is set to 2 bits, TV is not set, MO is set to ignore and CDA is set to "value-sent".</t>
            </li>
          </ul>
          <t>ECN values are compressed according to the ecn_cda value:</t>
          <ul spacing="normal">
            <li>
              <t>If ecn_cda is set to "not_compressed", the ECN field is included in the inner IP header. FL is set to 2 bits, TV is not set, MO is set to "ignore", CDA is set to "sent-value".</t>
            </li>
            <li>
              <t>If ecn_cda is set to "lower", the ECN value is elided and the ECN value is copied in the outer IP header. FL is set to 2 bits, TV is not set, MO is set to "ignore", CDA is set to "lower".</t>
            </li>
          </ul>
          <t>Flow label is compressed according to the flow_label_cda value:</t>
          <ul spacing="normal">
            <li>
              <t>If flow_label_cda is set to "not_compressed", the Flow label is included in the IPv6 header. FL is set to 20 bits, TV is not set, MO is set to "ignore", and CDA is set to "sent-value".</t>
            </li>
            <li>
              <t>If flow_label_cda is set to "lower", the Flow Label is elided and read from the outer IP header (using compute-*(See <xref target="sec-cda"/>)). FL is set to 20 bits, TV is not set, MO is set to "ignore", and CDA is set to "lower". If the outer IP header is an IPv4 header, only the 16 LSB of the Flow Label are inserted into the IPv4 header. At the decompression, the 4 MSB of the Flow Label are set to 0.</t>
            </li>
            <li>
              <t>If flow_label_cda is set to "generated", the Flow Label is elided and the Flow Label is then re-generated (using compute-*) at the decompression (See <xref target="sec-cda"/>). The resulting Flow Label differs from the initial value. FL is set to 20, TV is not set, MO is set to "ignore" and CDA is set to "generated".</t>
            </li>
            <li>
              <t>If flow_label_cda is set to "zero", the Flow Label is elided and set to 0 at decompression. A 0 value indicates no flow label is present. Fl is set to 20 bits, TV is set to 0, MO is set to "equal" and CDA is set to "not-sent".</t>
            </li>
          </ul>
          <t>Payload Length is elided and determined from the Tunnel IP header Payload Length as well as the decompressed Payload. FL is set to 16 bits, TV is not set, MO is set to "ignore", CDA is set to "lower".</t>
          <t>Next Header is compressed according to ts_proto:</t>
          <ul spacing="normal">
            <li>
              <t>If ts_proto is the single value 0, Next Header is not compressed. FL is set to 8 bits, TV is not set, MO is set to "ignore", CDA is set to "sent-value".</t>
            </li>
            <li>
              <t>If ts_proto is a single non zero value, Next Header is compressed. FL is set to 8 bits, TV is set to ts_proto, MO is set to "equal" and CDA is set to "not-sent".</t>
            </li>
          </ul>
          <t>The IPv6 Hop Limit is read from the Tunnel IP header Hop Limit. FL is set to 8 bits, TV is not set, MO is set to "ignore" and CDA is set to "lower."</t>
          <t>The source and destination IPv6 addresses are compressed using MSB. 
In both cases, FL is set to 128, TV is respectively set to  prefix_bits(ts_ip_src_start, ts_ip_src_ed) or prefix_bits(ts_ip_dst_start, ts_ip_dst_end), the MO is set to "MSB," and the CDA is set to "LSB."</t>
        </section>
        <section anchor="sec-inner-ip4">
          <name>Compression of the Inner IPv4 header</name>
          <t>The fields Version, DSCP, ECN, Source Address and Destination Address are compressed as described for IPv6 in <xref target="sec-inner-ip6"/>.
The field Total Length (16 bits) is compressed similarly to the IPv6 field Payload Length. The field Identification (16 bits) is compressed similarly to the IPv6 field Flow Label. If the tunnel IP header is an IPv6 header, the Identification is placed as the LSB of the IPv6 header and the 4 remaining MSB are set to 0.  The field Time to Live is compressed similarly to the IPv6 Hop Limit field. The Protocol field is compressed similarly to the last IPv6 Next Header field.</t>
          <t>The Internet Header Length (IHL) is not compressed, FL is set to 4 bits, TV is not set, MO is set to ignore and CDA is set to "value-sent".</t>
          <t>The IPv4 header checksum is elided.
FL is set to 16, TV is omitted, MO is set to "ignore," and CDA is set to "checksum."</t>
        </section>
      </section>
      <section anchor="sec-ctec">
        <name>Clear Text ESP Compression (CTEC)</name>
        <t>Once the Inner IP Packet has undergone compression as outlined in <xref target="sec-iipc"/>, the resulting compressed packet comprises a specific number of bytes. To construct the Clear Text ESP Packet, it is necessary to ascertain the ESP Payload Data, the Next Header, the ESP Pad Length, and the ESP Padding fields. (Refer to <xref target="fig-diet-esp-schc-pre-post-processing"/>, after post-processing.)</t>
        <t>When esp_trailer is set to "Mandatory", the Next Header and the ESP Pad Length fields are present. Such requirement is usually expected to remain compatible with hardware implementations of ESP. The ESP Pad Length value is determined to meet the required alignment. When alignment is set to "8bit", Pad Length is set to 0 and the Padding field is empty.</t>
        <t>Conversely, when esp_trailer is set to "Optional", the Next Header, Pad Length, and Padding are generated as follows:</t>
        <t>In transport mode, the IP header of the inner packet remains not compressed during the IIPC phase, and the ESP Payload Data is derived from the inner packet. Conversely, in tunnel mode, the ESP Payload Data encompasses the entirety of the packet generated by the IIPC.</t>
        <t>In transport mode, the Next Header field is obtained from either the inner IP header or the Security Association, as specified in <xref target="sec-inner-ip4"/> or <xref target="sec-inner-ip6"/>. In tunnel mode, the Next Header is elided, as it is determined by ts_ip_version. FL is set to 8 bit, TV is set to IPv4 or IPv6 depending on ts_ip_version, MO is set to "equal" and CDA is set to "not-sent".</t>
        <t>The ESP Pad Length and ESP Padding fields are omitted only when ESP alignment has been selected to "8bit" and esp_encr does not necessitate a specific block size alignment, or if that block size is one byte. This is represented by setting FL to (Pad Length + 1) * 8 bits, leaving TV unset, configuring MO to "ignore," and designating CDA as padding. The ESP Padding and ESP Pad Length may vary from their decompressed counterparts. However, since the IPsec process removes the padding, these variations do not affect packet processing. When esp_encr requires a specific block size, the ESP Pad Length and ESP Padding fields remain not compressed.</t>
      </section>
      <section anchor="sec-eec">
        <name>Encrypted ESP Compression (EEC)</name>
        <t>Once the Clear Text Packet has undergone compression as outlined in <xref target="sec-ctec"/>, the resulting CTEC is encrypted. The header fields once the encrypted ESP packet is formed are the SPI and SN. To facilitate the processes of compression and decompression, this specification requires that the compressed ESP Header is byte-aligned. This requirement is satisfied by ensuring that the sum of esp_spi_lsb and esp_sn_lsb MUST be a multiple of 8.</t>
        <t>SPI is compressed to its LSB.
FL is set to 32 bits, TV is not set, MO is set to "MSB( 4 - esp_spi_lsb)" and CDA is set to "LSB".</t>
        <t>SN is compressed to its LSB, similarly to the SPI. 
FL is set to 32 bits, TV is not set, MO is set to "MSB( 4 - esp_sn_lsb)" and CDA is set to "LSB".</t>
      </section>
    </section>
    <section anchor="diet-esp-compression-for-ipsec-in-transport-mode">
      <name>Diet-ESP Compression for IPsec in Transport Mode</name>
      <t>The transport mode mostly differs from the Tunnel mode in that the IP header of the packet is not encrypted. As a result, the IP Payload is compressed as described in <xref target="sec-payload"/>. The IP header is not compressed. The byte alignment of the Compressed Payload is performed as described in <xref target="sec-iipc"/>. The Clear Text ESP Compression is performed as described in <xref target="sec-ctec"/> except for the Next Header Field, which is compressed as described in <xref target="sec-inner-ip6"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>We request the IANA to create a new registry for the IIPC Profile</t>
      <artwork><![CDATA[
| IIPC Profile value    | Reference |
+-----------------------+-----------+
| "iipc_not_compressed" | ThisRFC   |
| "iipc_diet-esp"       | ThisRFC   |
]]></artwork>
      <t>We request IANA to create the following registries for the "diet-esp" IIPC Profile.</t>
      <artwork><![CDATA[
| Flow Label CDA Value | Reference |
+----------------------+-----------+
| "not_compressed"     | ThisRFC   |
| "generated"          | ThisRFC   |
| "lower"              | ThisRFC   |
| "zero"               | ThisRFC   |
]]></artwork>
      <artwork><![CDATA[
| DSCP CDA Value       | Reference |
+----------------------+-----------+
| "not_compressed"     | ThisRFC   |
| "lower"              | ThisRFC   |
| "sa"                 | ThisRFC   |
]]></artwork>
      <artwork><![CDATA[
| ECN CDA Value       | Reference |
+---------------------+-----------+
| "not_compressed"    | ThisRFC   |
| "lower"             | ThisRFC   |
]]></artwork>
      <artwork><![CDATA[
| Alignment            | Reference |
+----------------------+-----------+
| "8 bit"              | ThisRFC   |
| "16 bit"             | ThisRFC   |
| "32 bit"             | ThisRFC   |
| "64 bit"             | ThisRFC   |
]]></artwork>
      <artwork><![CDATA[
| IPsec mode Value     | Reference |
+----------------------+-----------+
| "tunnel"             | ThisRFC   |
| "transport"          | ThisRFC   |
]]></artwork>
    </section>
    <section anchor="sec-sec">
      <name>Security Considerations</name>
      <t>The security considerations encompass those outlined in ESP <xref target="RFC4303"/> as well as those pertaining to SCHC <xref target="RFC8724"/>.</t>
      <t>When employing ESP <xref target="RFC4303"/> in Tunnel Mode, the complete inner IP packet is safeguarded against man-in-the-middle attacks through cryptographic means, rendering it virtually impossible for an attacker to alter any fields associated with either the inner IP header or the inner IP payload. This level of protection is achieved by configuring the Flow Label CDA Value to "not_compressed", the DSCP CDA Value to either "not_compressed" or "sa", and the ECN CDA Value to "not_compressed".</t>
      <t>However, this protection is compromised if the Flow Label CDA Value, DSCP CDA Value, or ECN CDA Values are set to "lower." In such cases, the values from the inner packet for the respective fields will be derived from the outer IP header, leaving these fields unprotected. It is important to note that even the Authentication Header <xref target="RFC4302"/> does not provide protection for these fields. When associated with a CDA value of "lower," the level of protection is akin to that provided in Transport mode. This vulnerability could be exploited by an attacker within an untrusted domain, potentially disrupting load balancing strategies that rely on the Flow Label <xref target="RFC6438"/><xref target="RFC6437"/>. More broadly, when the Flow Label CDA Value is set to "lower," the relevant Flow Label Security Considerations from <xref target="RFC6437"/> apply. Additionally, an attacker may manipulate the DSCP values to diminish the priority of specific packets, resulting in packets from the same flow having varying priorities, traversing different paths, and introducing additional latency to applications, thereby facilitating DDoS attacks. Consequently, these fields remain unprotected and are susceptible to modification during transmission, which may also be regarded as an acceptable risk.</t>
      <t>When the Flow Label CDA Value is designated as "generated" or "zero," an attacker is unable to exploit the Flow Label field in any manner. The inner packet received is anticipated to possess a Flow Label distinct from that of the original encapsulated packet. However, the Flow Label is assigned by the receiving gateway. When the value is set to "zero," it is known, whereas when it is designated as "generated," it must be produced in accordance with the specifications outlined in <xref target="RFC6437"/>.</t>
      <t>The DSCP CDA Value is assigned as "sa" when DSCP values are linked to Security Associations (SAs), but it should not be utilized when all DSCP values are encompassed within a single SA. In such instances, "not_compressed" is recommended.</t>
      <t>The encryption algorithm must adhere to the guidelines provided in <xref target="RFC8221"/> to guarantee contemporary cryptographic protection.</t>
      <t>The least significant bits (LSB) of the ESP Security Parameter Index (SPI) determine the number of bits allocated to the SPI. An acceptable value for LSB must ensure that the peer possesses a sufficient number of SPIs, which is contingent upon the implementation of the SA lookup employed. If a peer relies solely on the SPI fields for SA lookup, then the number of LSB to consider must be sufficiently large to include the number of SPIs. 
A peer may compress its SPIs differently, in which case a incoming packet may have its SPI compressed to X bits while another packet may have its SPI compressed to Y bits. The operator must be cognizant that if multiple LSB values are permissible for each type of SA lookup, then multiple SA lookups and signature verifications may be required. It is advisable for a peer to ascertain the LSB associated with an incoming packet in a deterministic manner.</t>
      <t>The ESP SN LSB must be established in a manner that allows the receiving peer to clearly ascertain the sequence number of the IPsec packet. If this requirement is not met, it will lead to an invalid signature verification, resulting in the rejection of the packet. Furthermore, the LSB should have the capacity to accommodate the maximum number of packets that may be in transit simultaneously. This approach will guarantee that the last packet received is correctly linked to the corresponding sequence number.</t>
      <t>The ESP extension for IPv6 (and similarly for IPv4) requires a 64-bit (or 32-bit) alignment. Choosing alternative alignment values may result in a packet that fails to comply with this alignment requirement, potentially leading to rejection. The necessity for such alignment in IPv6 extensions arises from the fact that the length field in an IPv6 header extension is defined in terms of 64-bit words, making proper alignment essential for accurate packet parsing. Parsing of ESP does not present complications, as it is compatible with IPv6; the ESP extension is processed exclusively by the terminal IPsec peers and not by intermediary nodes. Furthermore, the ESP extension lacks a dedicated length field. Instead, its length is determined by the IPv6 header Length field, which is measured in bytes, along with the starting position of the ESP header extension. Consequently, it remains entirely feasible to parse an ESP extension that is not aligned to 64 bits. The same principle is applicable to IPv4.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>We extend our gratitude to Laurent Toutain, Ana Carolina Minaburo, Pascal Thubert, and Alexandre Pelov for their guidance on SCHC and their valuable insights concerning the implementation of OpenSCHC <xref target="OpenSCHC"/>. Additionally, we express our appreciation to Robert Moskowitz for his inspiration in coining the term "Diet-ESP," derived from Diet-HIP, as well as to Samita Chakrabart, Tero Kivinen, Michael Richardson, and Valery Smyslov for their enduring support. The authors also wish to acknowledge the assistance provided by Mitacs through the Mitacs Accelerate program.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-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="RFC4303" target="https://www.rfc-editor.org/info/rfc4303" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml">
          <front>
            <title>IP Encapsulating Security Payload (ESP)</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="December" year="2005"/>
            <abstract>
              <t>This document describes an updated version of the Encapsulating Security Payload (ESP) protocol, which is designed to provide a mix of security services in IPv4 and IPv6. ESP is used to provide confidentiality, data origin authentication, connectionless integrity, an anti-replay service (a form of partial sequence integrity), and limited traffic flow confidentiality. This document obsoletes RFC 2406 (November 1998). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4303"/>
          <seriesInfo name="DOI" value="10.17487/RFC4303"/>
        </reference>
        <reference anchor="RFC4301" target="https://www.rfc-editor.org/info/rfc4301" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4301.xml">
          <front>
            <title>Security Architecture for the Internet Protocol</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="K. Seo" initials="K." surname="Seo"/>
            <date month="December" year="2005"/>
            <abstract>
              <t>This document describes an updated version of the "Security Architecture for IP", which is designed to provide security services for traffic at the IP layer. This document obsoletes RFC 2401 (November 1998). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4301"/>
          <seriesInfo name="DOI" value="10.17487/RFC4301"/>
        </reference>
        <reference anchor="RFC8724" target="https://www.rfc-editor.org/info/rfc8724" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8724.xml">
          <front>
            <title>SCHC: Generic Framework for Static Context Header Compression and Fragmentation</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="D. Barthel" initials="D." surname="Barthel"/>
            <author fullname="JC. Zuniga" initials="JC." surname="Zuniga"/>
            <date month="April" year="2020"/>
            <abstract>
              <t>This document defines the Static Context Header Compression and fragmentation (SCHC) framework, which provides both a header compression mechanism and an optional fragmentation mechanism. SCHC has been designed with Low-Power Wide Area Networks (LPWANs) in mind.</t>
              <t>SCHC compression is based on a common static context stored both in the LPWAN device and in the network infrastructure side. This document defines a generic header compression mechanism and its application to compress IPv6/UDP headers.</t>
              <t>This document also specifies an optional fragmentation and reassembly mechanism. It can be used to support the IPv6 MTU requirement over the LPWAN technologies. Fragmentation is needed for IPv6 datagrams that, after SCHC compression or when such compression was not possible, still exceed the Layer 2 maximum payload size.</t>
              <t>The SCHC header compression and fragmentation mechanisms are independent of the specific LPWAN technology over which they are used. This document defines generic functionalities and offers flexibility with regard to parameter settings and mechanism choices. This document standardizes the exchange over the LPWAN between two SCHC entities. Settings and choices specific to a technology or a product are expected to be grouped into profiles, which are specified in other documents. Data models for the context and profiles are out of scope.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8724"/>
          <seriesInfo name="DOI" value="10.17487/RFC8724"/>
        </reference>
        <reference anchor="RFC7296" target="https://www.rfc-editor.org/info/rfc7296" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This document describes version 2 of the Internet Key Exchange (IKE) protocol. IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs). This document obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 to be an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="79"/>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>
        <reference anchor="I-D.ietf-ipsecme-ikev2-diet-esp-extension" target="https://datatracker.ietf.org/doc/html/draft-ietf-ipsecme-ikev2-diet-esp-extension-05" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ipsecme-ikev2-diet-esp-extension.xml">
          <front>
            <title>Internet Key Exchange version 2 (IKEv2) extension for Header Compression Profile (HCP)</title>
            <author fullname="Daniel Migault" initials="D." surname="Migault">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Maryam Hatami" initials="M." surname="Hatami">
              <organization>Concordia University</organization>
            </author>
            <author fullname="Daiying Liu" initials="D." surname="Liu">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Stere Preda" initials="S." surname="Preda">
              <organization>Ericsson</organization>
            </author>
            <author fullname="J. William Atwood" initials="J. W." surname="Atwood">
              <organization>Concordia University</organization>
            </author>
            <author fullname="Sandra Cespedes" initials="S." surname="Cespedes">
              <organization>Concordia University</organization>
            </author>
            <author fullname="Tobias Guggemos" initials="T." surname="Guggemos">
              <organization>LMU</organization>
            </author>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <date day="16" month="March" year="2025"/>
            <abstract>
              <t>This document describes an IKEv2 extension for Header Compression to agree on Attributes for Rule Generation. This extension defines the necessary registries for the ESP Header Compression Profile (EHCP) Diet-ESP.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ipsecme-ikev2-diet-esp-extension-05"/>
        </reference>
        <reference anchor="I-D.mglt-ipsecme-dscp-np" target="https://datatracker.ietf.org/doc/html/draft-mglt-ipsecme-dscp-np-03" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.mglt-ipsecme-dscp-np.xml">
          <front>
            <title>Differentiated Services Field Codepoints Internet Key Exchange version 2 Notification</title>
            <author fullname="Daniel Migault" initials="D." surname="Migault">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Joel M. Halpern" initials="J. M." surname="Halpern">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Stere Preda" initials="S." surname="Preda">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Daiying Liu" initials="D." surname="Liu">
              <organization>Ericsson</organization>
            </author>
            <author fullname="U. Parkholm" initials="U." surname="Parkholm">
              <organization>Ericsson</organization>
            </author>
            <date day="30" month="March" year="2025"/>
            <abstract>
              <t>This document outlines the DSCP Notification Payload, which, during a CREATE_CHILD_SA Exchange, explicitly indicates the DSCP code points that will be encapsulated in the newly established tunnel. This document updates RFC 4301.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mglt-ipsecme-dscp-np-03"/>
        </reference>
        <reference anchor="RFC8750" target="https://www.rfc-editor.org/info/rfc8750" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8750.xml">
          <front>
            <title>Implicit Initialization Vector (IV) for Counter-Based Ciphers in Encapsulating Security Payload (ESP)</title>
            <author fullname="D. Migault" initials="D." surname="Migault"/>
            <author fullname="T. Guggemos" initials="T." surname="Guggemos"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>Encapsulating Security Payload (ESP) sends an initialization vector (IV) in each packet. The size of the IV depends on the applied transform and is usually 8 or 16 octets for the transforms defined at the time this document was written. When used with IPsec, some algorithms, such as AES-GCM, AES-CCM, and ChaCha20-Poly1305, take the IV to generate a nonce that is used as an input parameter for encrypting and decrypting. This IV must be unique but can be predictable. As a result, the value provided in the ESP Sequence Number (SN) can be used instead to generate the nonce. This avoids sending the IV itself and saves 8 octets per packet in the case of AES-GCM, AES-CCM, and ChaCha20-Poly1305. This document describes how to do this.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8750"/>
          <seriesInfo name="DOI" value="10.17487/RFC8750"/>
        </reference>
        <reference anchor="RFC6437" target="https://www.rfc-editor.org/info/rfc6437" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6437.xml">
          <front>
            <title>IPv6 Flow Label Specification</title>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="J. Rajahalme" initials="J." surname="Rajahalme"/>
            <date month="November" year="2011"/>
            <abstract>
              <t>This document specifies the IPv6 Flow Label field and the minimum requirements for IPv6 nodes labeling flows, IPv6 nodes forwarding labeled packets, and flow state establishment methods. Even when mentioned as examples of possible uses of the flow labeling, more detailed requirements for specific use cases are out of the scope for this document.</t>
              <t>The usage of the Flow Label field enables efficient IPv6 flow classification based only on IPv6 main header fields in fixed positions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6437"/>
          <seriesInfo name="DOI" value="10.17487/RFC6437"/>
        </reference>
        <reference anchor="RFC8221" target="https://www.rfc-editor.org/info/rfc8221" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8221.xml">
          <front>
            <title>Cryptographic Algorithm Implementation Requirements and Usage Guidance for Encapsulating Security Payload (ESP) and Authentication Header (AH)</title>
            <author fullname="P. Wouters" initials="P." surname="Wouters"/>
            <author fullname="D. Migault" initials="D." surname="Migault"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This document replaces RFC 7321, "Cryptographic Algorithm Implementation Requirements and Usage Guidance for Encapsulating Security Payload (ESP) and Authentication Header (AH)". The goal of this document is to enable ESP and AH to benefit from cryptography that is up to date while making IPsec interoperable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8221"/>
          <seriesInfo name="DOI" value="10.17487/RFC8221"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="OpenSCHC" target="https://github.com/openschc">
          <front>
            <title>OpenSCHC a Python open-source implementation of SCHC (Static Context Header Compression)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC9333" target="https://www.rfc-editor.org/info/rfc9333" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9333.xml">
          <front>
            <title>Minimal IP Encapsulating Security Payload (ESP)</title>
            <author fullname="D. Migault" initials="D." surname="Migault"/>
            <author fullname="T. Guggemos" initials="T." surname="Guggemos"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>This document describes the minimal properties that an IP Encapsulating Security Payload (ESP) implementation needs to meet to remain interoperable with the standard ESP as defined in RFC 4303. Such a minimal version of ESP is not intended to become a replacement of ESP in RFC 4303. Instead, a minimal implementation is expected to be optimized for constrained environments while remaining interoperable with implementations of ESP. In addition, this document provides some considerations for implementing minimal ESP in a constrained environment, such as limiting the number of flash writes, handling frequent wakeup and sleep states, limiting wakeup time, and reducing the use of random generation.</t>
              <t>This document does not update or modify RFC 4303. It provides a compact description of how to implement the minimal version of that protocol. RFC 4303 remains the authoritative description.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9333"/>
          <seriesInfo name="DOI" value="10.17487/RFC9333"/>
        </reference>
        <reference anchor="RFC8376" target="https://www.rfc-editor.org/info/rfc8376" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8376.xml">
          <front>
            <title>Low-Power Wide Area Network (LPWAN) Overview</title>
            <author fullname="S. Farrell" initials="S." role="editor" surname="Farrell"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>Low-Power Wide Area Networks (LPWANs) are wireless technologies with characteristics such as large coverage areas, low bandwidth, possibly very small packet and application-layer data sizes, and long battery life operation. This memo is an informational overview of the set of LPWAN technologies being considered in the IETF and of the gaps that exist between the needs of those technologies and the goal of running IP in LPWANs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8376"/>
          <seriesInfo name="DOI" value="10.17487/RFC8376"/>
        </reference>
        <reference anchor="I-D.ietf-schc-architecture" target="https://datatracker.ietf.org/doc/html/draft-ietf-schc-architecture-04" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-schc-architecture.xml">
          <front>
            <title>Static Context Header Compression (SCHC) Architecture</title>
            <author fullname="Alexander Pelov" initials="A." surname="Pelov">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Pascal Thubert" initials="P." surname="Thubert"/>
            <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
              <organization>Consultant</organization>
            </author>
            <date day="6" month="February" year="2025"/>
            <abstract>
              <t>This document defines the SCHC architecture.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-schc-architecture-04"/>
        </reference>
        <reference anchor="RFC4302" target="https://www.rfc-editor.org/info/rfc4302" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4302.xml">
          <front>
            <title>IP Authentication Header</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="December" year="2005"/>
            <abstract>
              <t>This document describes an updated version of the IP Authentication Header (AH), which is designed to provide authentication services in IPv4 and IPv6. This document obsoletes RFC 2402 (November 1998). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4302"/>
          <seriesInfo name="DOI" value="10.17487/RFC4302"/>
        </reference>
        <reference anchor="RFC6438" target="https://www.rfc-editor.org/info/rfc6438" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6438.xml">
          <front>
            <title>Using the IPv6 Flow Label for Equal Cost Multipath Routing and Link Aggregation in Tunnels</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <date month="November" year="2011"/>
            <abstract>
              <t>The IPv6 flow label has certain restrictions on its use. This document describes how those restrictions apply when using the flow label for load balancing by equal cost multipath routing and for link aggregation, particularly for IP-in-IPv6 tunneled traffic. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6438"/>
          <seriesInfo name="DOI" value="10.17487/RFC6438"/>
        </reference>
      </references>
    </references>
    <?line 798?>

<section anchor="examples-of-diet-esp">
      <name>Examples of Diet-ESP</name>
      <t>This appendix provides the details of the SCHC rules defined for Diet-ESP compression, alongside an explanation and illustrative examples for both Tunnel and Transport modes.</t>
      <section anchor="tunnel-mode">
        <name>Tunnel Mode</name>
        <t>This section provides a structured example of how Diet-ESP operates in Tunnel Mode. The example includes Attributes for Rule Derivation (AfRD), SCHC rules, the Inner IP packet (IIP), the compression process, and the decompression process.</t>
        <section anchor="json-representation-in-tunnel-mode">
          <name>Json Representation in Tunnel Mode</name>
          <t>In Tunnel Mode, the full inner IP packet is compressed before ESP encapsulation, with each compression stage applying its own dedicated SCHC rule. The "iipc_diet-esp" profile activates the IIPC rule to compress the inner IPv6 and transport headers. The CTEC rule compresses ESP trailer-related fields such as padding and alignment. The EEC rule handles compression of the ESP SPI and Sequence Number, which are part of the outer ESP header and visible post-encryption.</t>
          <t>The separation into three rules ensures modularity and clarity:</t>
          <t>IIPC Rule: compresses source/destination IP addresses using MSB/LSB, compresses ports using LSB, and elides predictable fields like Next Header and Length.</t>
          <t>CTEC Rule: elides padding and enforces alignment constraints.</t>
          <t>EEC Rule: compresses ESP SPI and Sequence Number using LSB with an MSB match.</t>
          <sourcecode type="json"><![CDATA[
{
  "iipc_rule": {
    "RuleID": 1,
    "fields": [
      {
        "FID": "ts_ip_src_start",
        "FL": 128,
        "TV": "2001:db8::1234",
        "MO": "MSB",
        "CDA": "LSB"
      },
      {
        "FID": "ts_ip_dst_start",
        "FL": 128,
        "TV": "2001:db8::5678",
        "MO": "MSB",
        "CDA": "LSB"
      },
      {
        "FID": "IPv6.NextHeader",
        "FL": 8,
        "TV": 17,
        "MO": "equal",
        "CDA": "not-sent"
      },
      {
        "FID": "ts_port_src_start",
        "FL": 16,
        "TV": 5001,
        "MO": "MSB",
        "CDA": "LSB"
      },
      {
        "FID": "ts_port_dst_start",
        "FL": 16,
        "TV": 4500,
        "MO": "MSB",
        "CDA": "LSB"
      },
      {
        "FID": "UDP.Length",
        "FL": 16,
        "MO": "ignore",
        "CDA": "compute-length"
      },
      {
        "FID": "UDP.Checksum",
        "FL": 16,
        "MO": "ignore",
        "CDA": "checksum"
      }
    ]
  },

  "ctec_rule": {
    "RuleID": 2,
    "fields": [
      {
        "FID": "ESP.Padding",
        "FL": 8,
        "MO": "ignore",
        "CDA": "compute-padding"
      },
      {
        "FID": "alignment",
        "FL": 8,
        "TV": "64 bit",
        "MO": "equal",
        "CDA": "not-sent"
      }
    ]
  },

  "eec_rule": {
    "RuleID": 3,
    "fields": [
      {
        "FID": "esp_spi",
        "FL": 32,
        "MO": "MSB(24)",
        "CDA": "LSB"
      },
      {
        "FID": "esp_sn",
        "FL": 32,
        "MO": "MSB(24)",
        "CDA": "LSB"
      }
    ]
  }
}

]]></sourcecode>
        </section>
        <section anchor="attributes-for-rule-derivation-afrd">
          <name>Attributes for Rule Derivation (AfRD)</name>
          <t>The SCHC rules for Tunnel Mode are derived from the following AfRD:</t>
          <ul spacing="normal">
            <li>
              <t>IPsec Mode: Tunnel</t>
            </li>
            <li>
              <t>Traffic Selector IP Version: IPv6-only</t>
            </li>
            <li>
              <t>Traffic Selector Source Address: 2001:db8::1234</t>
            </li>
            <li>
              <t>Traffic Selector Destination Address: 2001:db8::5678</t>
            </li>
            <li>
              <t>DSCP CDA: Lower</t>
            </li>
            <li>
              <t>ECN CDA: Lower</t>
            </li>
            <li>
              <t>ESP SPI Compression: LSB</t>
            </li>
            <li>
              <t>ESP SN Compression: LSB</t>
            </li>
          </ul>
        </section>
        <section anchor="inner-ip-packet-iip">
          <name>Inner IP Packet (IIP)</name>
          <t>The original packet (IIP), before compression consists of:</t>
          <ul spacing="normal">
            <li>
              <t>IPv6 Source Address: 2001:db8::1234</t>
            </li>
            <li>
              <t>IPv6 Destination Address: 2001:db8::5678</t>
            </li>
            <li>
              <t>UDP Source Port: 5001</t>
            </li>
            <li>
              <t>UDP Destination Port: 4500</t>
            </li>
            <li>
              <t>UDP Length: 16 bytes</t>
            </li>
            <li>
              <t>Payload Data</t>
            </li>
          </ul>
        </section>
        <section anchor="diet-esp-compression">
          <name>Diet-ESP Compression</name>
          <t>The rules for the IIPC, CTEC, and EEC layers are defined as IIPC to compress IPv6 headers and UDP headers, CTEC to compress ESP Trailer fields, and EEC to compress ESP SPI and Sequence Number.
Each compressor applies the rule selected by the SA as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t>IIPC: UDP Header Compression
              </t>
              <ul spacing="normal">
                <li>
                  <t>UDP ports are compressed using the LSB technique.</t>
                </li>
                <li>
                  <t>UDP Length is removed (computed at decompression).</t>
                </li>
                <li>
                  <t>UDP Checksum is omitted.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>IIPC: IPv6 Header Compression
              </t>
              <ul spacing="normal">
                <li>
                  <t>Source and Destination Addresses are compressed using MSB.</t>
                </li>
                <li>
                  <t>Next Header field is omitted.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CTEC: ESP Trailer Compression
              </t>
              <ul spacing="normal">
                <li>
                  <t>Pad Length and Padding are omitted.</t>
                </li>
                <li>
                  <t>Next Header is omitted.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>EEC: ESP Header Compression
              </t>
              <ul spacing="normal">
                <li>
                  <t>SPI and SN are compressed using LSB.</t>
                </li>
                <li>
                  <t>Compressed Packet Output</t>
                </li>
              </ul>
            </li>
          </ol>
          <t>The final compressed packet consists of an EEC packet with a compressed ESP header, a compressed IIP Header, and the payload.</t>
        </section>
        <section anchor="diet-esp-decompression">
          <name>Diet-ESP Decompression</name>
          <t>The decompression process reverses these steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>EEC: ESP Header Decompression
              </t>
              <ul spacing="normal">
                <li>
                  <t>SPI and SN are reconstructed using the LSB values.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CTEC: ESP Trailer Decompression (Optional)</t>
            </li>
            <li>
              <t>IIPC: IPv6 Header Decompression
              </t>
              <ul spacing="normal">
                <li>
                  <t>ESP Next Header and Padding fields are restored.</t>
                </li>
                <li>
                  <t>IPv6 Source and Destination Addresses are restored.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>IIPC: UDP Header Decompression
              </t>
              <ul spacing="normal">
                <li>
                  <t>UDP ports are restored using the decompressed LSB values.</t>
                </li>
                <li>
                  <t>UDP Length and Checksum are recalculated.</t>
                </li>
              </ul>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="transport-mode">
        <name>Transport Mode</name>
        <t>This section follows the same structure as Tunnel Mode but applies to Transport Mode, where the IP header remains not compressed.</t>
        <section anchor="json-representation-in-transport-mode">
          <name>Json Representation in Transport Mode</name>
          <t>In Transport Mode, the inner IP header is not compressed, and only the UDP header fields (within the inner payload) and the ESP headers are subject to compression. Following the correct SCHC rule structure, the compression logic is split across three rules:</t>
          <t>The IIPC rule compresses UDP Source and Destination Ports using LSB and elides the Length and Checksum fields using compute-* and checksum CDAs.</t>
          <t>The CTEC rule compresses ESP trailer fields such as Padding and Next Header, and ensures byte alignment.</t>
          <t>The EEC rule compresses the ESP SPI and Sequence Number using the LSB approach.</t>
          <t>Since the inner IP header is retained in Transport Mode, the IP Source and Destination Addresses are not compressed but instead transmitted in full.</t>
          <sourcecode type="json"><![CDATA[
{
  "iipc_rule": {
    "RuleID": 1,
    "fields": [
      {
        "FID": "ts_port_src_start",
        "FL": 16,
        "TV": 1234,
        "MO": "MSB",
        "CDA": "LSB"
      },
      {
        "FID": "ts_port_dst_start",
        "FL": 16,
        "TV": 5678,
        "MO": "MSB",
        "CDA": "LSB"
      },
      {
        "FID": "UDP.Length",
        "FL": 16,
        "MO": "ignore",
        "CDA": "compute-length"
      },
      {
        "FID": "UDP.Checksum",
        "FL": 16,
        "MO": "ignore",
        "CDA": "checksum"
      }
    ]
  },

  "ctec_rule": {
    "RuleID": 2,
    "fields": [
      {
        "FID": "ESP.Padding",
        "FL": 8,
        "MO": "ignore",
        "CDA": "compute-padding"
      },
      {
        "FID": "ESP.NextHeader",
        "FL": 8,
        "TV": 17,
        "MO": "equal",
        "CDA": "not-sent"
      },
      {
        "FID": "alignment",
        "FL": 8,
        "TV": "64 bit",
        "MO": "equal",
        "CDA": "not-sent"
      }
    ]
  },

  "eec_rule": {
    "RuleID": 3,
    "fields": [
      {
        "FID": "esp_spi",
        "FL": 32,
        "MO": "MSB(24)",
        "CDA": "LSB"
      },
      {
        "FID": "esp_sn",
        "FL": 32,
        "MO": "MSB(24)",
        "CDA": "LSB"
      }
    ]
  }
}
]]></sourcecode>
        </section>
        <section anchor="attributes-for-rule-derivation-afrd-1">
          <name>Attributes for Rule Derivation (AfRD)</name>
          <t>The SCHC rules for Transport Mode are derived from the following AfRD:</t>
          <ul spacing="normal">
            <li>
              <t>IPsec Mode: Transport</t>
            </li>
            <li>
              <t>Traffic Selector IP Version: IPv6-only</t>
            </li>
            <li>
              <t>Traffic Selector Source Address: 2001:db8::1001</t>
            </li>
            <li>
              <t>Traffic Selector Destination Address: 2001:db8::2002</t>
            </li>
            <li>
              <t>DSCP CDA: Lower</t>
            </li>
            <li>
              <t>ECN CDA: Lower</t>
            </li>
            <li>
              <t>ESP SPI Compression: LSB</t>
            </li>
            <li>
              <t>ESP SN Compression: LSB</t>
            </li>
          </ul>
        </section>
        <section anchor="inner-ip-packet-iip-1">
          <name>Inner IP Packet (IIP)</name>
          <t>The original packet before compression consists of:</t>
          <ul spacing="normal">
            <li>
              <t>IPv6 Source Address: 2001:db8::1001</t>
            </li>
            <li>
              <t>IPv6 Destination Address: 2001:db8::2002</t>
            </li>
            <li>
              <t>UDP Source Port: 1234</t>
            </li>
            <li>
              <t>UDP Destination Port: 5678</t>
            </li>
            <li>
              <t>UDP Length: 18 bytes</t>
            </li>
            <li>
              <t>ESP Payload Data</t>
            </li>
          </ul>
        </section>
        <section anchor="diet-esp-compression-1">
          <name>Diet-ESP Compression</name>
          <ol spacing="normal" type="1"><li>
              <t>IIPC: UDP Header Compression
              </t>
              <ul spacing="normal">
                <li>
                  <t>UDP ports are compressed using the LSB technique.</t>
                </li>
                <li>
                  <t>UDP Length is removed (computed at decompression).</t>
                </li>
                <li>
                  <t>UDP Checksum is omitted.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CTEC: ESP Trailer Compression
              </t>
              <ul spacing="normal">
                <li>
                  <t>Pad Length and Padding are omitted.</t>
                </li>
                <li>
                  <t>Next Header is omitted.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>EEC: ESP Header Compression
              </t>
              <ul spacing="normal">
                <li>
                  <t>SPI and SN are compressed using LSB.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Compressed Packet Output</t>
            </li>
          </ol>
          <t>The final compressed packet consists of the compressed ESP header, IIPC compressed data, and payload.</t>
        </section>
        <section anchor="diet-esp-decompression-1">
          <name>Diet-ESP Decompression</name>
          <t>The decompression process mirrors the compression steps, restoring SPI, SN, UDP headers, ESP Next Header, and Padding fields.</t>
        </section>
        <section anchor="github-repository-diet-esp-schc-implementation">
          <name>GitHub Repository: Diet-ESP SCHC Implementation</name>
          <t>The source code for the implementation of the Diet-ESP profile, including the compression and decompression logic using the SCHC rules, is available on GitHub. Access the code at the following link:</t>
          <t>GitHub Repository: <eref target="https://github.com/mglt/pyesp/tree/master/examples/draft-diet-esp.py">Diet-ESP SCHC Implementation</eref></t>
          <t>This repository contains the rule definitions, examples, and source code for implementing and testing the Diet-ESP profile. Refer to the README file for setup instructions and usage guidelines.</t>
        </section>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
HPgm64FbzYrlNLbmwRe1/noam3O/1ViW7mv8fCV6qjjP/yBzNpFhTX2NCRCz
RT92PJkPI4m04OjMDXyfVBuclvGbrmpqnJ4GU9dS7z0lOIqBwDi1UqiZY9SN
pOjSxqN+wHrRiET0F6xrIzJkIC1WVph2pqtpApePKntUNzQKkoZYJRELEgRb
M5PKOsyf2+gNlfLM6tn/sdJ6/6J0bkDKyFaZrIaUoMYmIabaiJivKZrEmYmP
6jfUYiiLfY+p8natbZLnrGxjkvKOnCPKREoy1Fc6k6rOKU+WTkrsDuK0y6Ik
UuFciraKLP10ewRUwvU04EAdtw8oprHo7krMYYK8ZBKjTaI2ibOtwoPtTDzz
9vLDtmqaVX/wdoq9WCeq9RxDYANUHmxT2KT3tSRDkggDgdAKfn8XuS+Q9HyZ
b6VUp4/IAwJp1PIfIXCraHKA+A81o2cNUrzmjNopLmocDcW1ZaB2PBs+oq9b
hyKjSGmR0LYXoyQ6e2DJrKOyF8VkQR6Vqt6KqpbhnQCn/gIWI8usEmxeVLCI
LvJK4XY236C4K1G6TdTDukzODfslUeJiIT77xSyt2FuHyqgBEUhNFhSMXEjm
WXxr8iPjJHo91NT2u4yOg1YlLhnuOtXqS9OaxXMYPJ5cIZlABufZIHTVIHL1
zKrSSe1NhEklgSWq3kczJA66uQ1A/IC01ijCHQlag2Z0Eos1TndwrPlccxz9
HZpPA+koYLjv2Gvog0N4+PhVdN+P209L4g7LgXdWulT0wWnhfNG7o+9Jpxim
0mM+4F+TsoCXThXRat0D7mi02WHdw3PMLzvMewcH+FpXY/LCcJTpxrcXtZg1
XNgQ8QCdWcHJq2kMhxvj9qzFC7iFKj5rGtvI9240AwSHUTzLFgUUBUYtnp81
uUnBL1O1kJzCKOTFWDQ4KEkiLKW83t6r1WGJVvVssuZYnfMwqgpVbsn16+u0
TQwf98s6cTFN3KLhj5m/tmC+prYbgwXPBp3mStJqeJAz2o2zcS/kKpzG190z
igNoO9XeSW3JkbSsQajRvPP3mx/xJpkGW95V5isXncihHrnIuFCZE+r5jAao
f/rjd48H8rlSBTU+byUNdB4tbRCrkPZxcDUMa+Oh9FXOGJGZBtO4NmvXuY93
rU/tfgb8VwtP8rO2jQiYpPU+a90AJnrLdsAVtf3qG/B3P146/YzTfrgnSgvS
uPwifXl+QRet24RXz7+TTaLL+Dk6WAvLeaop8h+EE9SW6I57eGvZPby1/B6G
15QUmupxaV+aaVph/j5cGszQ8yU2FUKxviYwtbdLHToEPuu5irhk8TaaiFxU
5Woi/50z8lSxSarJD8X3VTkzkQDoHDVuE2HbydH96dGKCybyCJIyAUW+3arF
bNX53WbwXWA66v7usf9dYL7p/O7JU/+7wBzR+d2z1WeScPiz7i4qV9eJloK7
yfS/9F30N4To3+I8BQnNOvFNpwgLr5H1v+u6O5YCNbw7PgemeBcckeCrBbIT
cQLpovzojAj0r52048spcPy5yFhxNKMBjGdJm4SwRmoSKmsAQoai9XDBXNRU
TcMV/VZ1BEKnR6D6dpyz+zk8tkhNSz0dtUtbtw8iJ7vpa/EwuFkGS4SXezJV
nyep3OMWaSckK6WStT7qpOfbn099AvRs8rGdwP5PR7sfBnp/Y0Rt5flDPn0t
Ln/5R120eSnQWmlzG8x6foE2V9IWCJME82B4ExHsZU6hHEJADuC9ng3qPNNZ
1zQXqzyvWzOqnQ09X05j7cHBWpJ5jSOOqwuGawxi86lB94RWZFvEmB2blVJd
XtArUl1fQV4tzv+CdcOCkuDsZWmyOPmOrByXJRO00WT+9CTyC+YVOwFJhnQZ
6VRSP9LRt85lHJ15mUPOXPSSS+RD9jyjYOOUafJ4Wx4PArmPAzelChRuyyid
P4UrV74O3mxTckQdwHezfP02sO2spZS4RCywRrEIwVPb8k92CSak7Mo375FR
JEhBQ+2tidN4B3PsMMYHqdAPvlN5PH8OiD4ihK2/Tb2eXzpOm2adrlgCi1aW
3MP8pXNEQildZrzlG8VyVfE9gYgxbEidh5qOF9ENYN4yDAZOPE98W3HdVYal
RWQxRhr4dTmDcnXEKLkKErZQT+LcpyWI+YYqYqrq6kIQKAeQC9Y06zRfuY2w
dd1qQMALw3dxt2LiDsr7yAeeSTl+n0qBvFgVXlPV1m2RYVxkAi/mBWkAMLcT
dlynEg7VFQuLRvLCRoBwTHJaVQuEOREpst6xwsXVHYzmV3GlFTaId8gWptcp
V0OUAktVckmeBVxOSIUD45+6sK/V17+wdUN1Yijx74eWKdVSczjeVrmVGVac
jIQCcPUpNbwZGo2CnMZ1MlmU1hcAyWDdoL5UlgzRho1m6EoxBmbE27Im/TBV
snT9RxO1R5YYcdswzvwurwsloNLVRPtUy4mFEDyS9lKms0lbhKZSt09ABxl3
LpK4JleM2NSIxOS6+iZ9w1VAhxyo7QI/WZ+FUWCzeX1rpsPQowZjKmDai5b8
vDbJD3kdrW1NVVFTOLRZQLTtK1Mv9PBY/W3CS+z7jgFbx1kxoKrUaqDgv182
VudP+1jw86jjeRS97V6Z/ezYP7T2Q/NV/4VctvRz3Xykfq7NLz1ekL9bIRh/
3rVoXmm4bfwA9uwROrfxnwbSHpj/+iDDhz93bQ9b27R+ft32cJ3P6TDpQ7jO
51gbeDzGssB3v+JFRRUb/emPX8PTx+Pxt/Ro9OvG5z+38LIA8kv4hnD0P7+z
NWbbiwhjUyvS3T306O1gWf5zd/89a3ypifHnj6lme+zT6VVfrqIf3ajdMYn1
2gqQmo0DIh2SUu9v2UXuRSctMPAIgGqh5B18b6cfZEJ2Psb1CcfQGom7SGdE
wNcqkuHuQWbi1bReeZuvqGtNHl3zpmMiSdo/AEsxI4dHvOHDjpmdmyXlpcml
oPbESqeyIWHRaceweDJEUFVX3HSbCU8OXcJSKVBFwrz89Ulcdk0WAJfBvCN/
Shp0x7ygLy2b9PrIvqbCAMYXF+SNGlS9QT6COMzTY8vMcpem1IE8jVyydZcd
y6ZzHVMCp7bOyZFI9z7UWd+qYSPfWMUc2UQ818PIRpDsnrsKCeQrLUJy2NHA
Md0ZeZ7poGy6UEh+ZDHqpRKYubYMzAN9wtxjndyrtbJiUNBnEPUjEf5bnfq9
ajuDISrUVBrSo5PvNwgQqF7DBy/hgRTsMLChytAUmDnsWAEvgN146nAIViu6
UdQrM8KGKZnhF+VQdd1JUEX/nZGdFfI4c3W2MPMazNJO22SVwtTHVMoPhbZ4
UnNRCr8tuYjnWGC+4nrLk0mC3pkO4SL+h1BONpsImlXKM4Qae7wecFCRgAd7
2cl2qhDR01kFDkfem3jJYEbBnm0NfXQjNZMtT+pPjpx8WjfO+PpsNIKcReFU
UAAwL4CwJLJRz1RICbX9415IU0weMgmOlnqdJjWLCtVHeHkZy4KMH2Gmbmsd
ofY7vd7PMHuwfeqvzK+9Zs0vaiiJ+LcEylJLk6PCA/nnnJJhCGmE8oiGBlh3
ztrUh2vailREdapzTE+KeaotTy6p1MOvgWe3ZPpVDB/RvH19ZWMfWzLiY30h
0y35LWLtZqo1bMveJKyqUeDpOh3+MuWh7frtnx6//fN9DknHBClnOik9MZmd
W9tnTSqcj+cXuGG1RMHc5L2ZH1E5OHHByJtr7LpYjVrW78x9SCZU2vlVp9X4
inqH1TxcdVY9A+vnHdR1lvsZB7VlxvqcWoAEx7TxTo6qLCHIcP+QSzDnlNNK
ZDqtRNdWBVZyb8eCd6s2zh803Dl1/4VLfvxZa25B1ObWdU9d76Dvh6C2cHlN
gn5QoaUf1FMYDB58hbKzuLS2GaH9INeGo6FjaoHJQ8umySrklswXYZWUtVVV
+9ancbQbOmRY1e422k07OpVJPwaytGIzdDXUpRvSfFmjKcsrbBNuy6DpT8L+
kMFumXzeRnxT43BtCC+vDdVANuVrgl2+PyPtALEaaFQyZwW8zBYgCLzlY36+
x4Y02aydwFtfeKdXjFCwwqwbj80g97pRQRgP3AD9FagC6J08TiPbTxXdJFlm
7CRe1RMrtd9fAuqit2hEVMkdllFcm/OeN9kWnRX3U+F3eHsee+mN2gzu3lKe
Pezlp6dmGbEczg+in2FzOpe9dG5OcqER7iW1sIRLl4rzCk3DajINhLFtvwB4
nfR5vMGCXHtZxvbKLc1MTIBOh1IaEatuVaHMvvnMTLNUJU3Ma0/9sCwXxXTA
8c9h6850D0xxGtqHYSeLCrcOQmS1XLzdLhdvi1wsZkeb8wv57CEzu0GuD5xI
W86MkF/VtSUvjJtCmjcdK8ZuAtEp5fgWStMXwhE6aHi5QS3bwx34xIpvHX4T
FPe7T+fuJrBMQh0iv+USnlougXrxR0fqn8UTZ25W3INWYphd31Y53pEn8DkA
tcrTdEZW3pdYPWidlbmDzRZW6suWAGmLi2j0k6FCjzrTpMoYbJmGoPY4T+xL
s8OHL162eDkFp3H74QQsS9HscWjq78a9Du1UYZxi2yjWcKnuTs7oGqkjJEMt
5mskhX/vNXqQeMpr0ZWjvm6RwxouUTD23IjCdOfWY01Sljo+TO2rVefDk5Q9
MWwOCqk7DhiKinbUShdO79+dtGBoYhfJuSUuCWXiagLscCwiS5hamifopRxU
DiiCOEMnAyojinF+6r/5bNcF4+gcvBgPIvHx0/XKNW1WFcuDeYdTNDivHDws
A3iyIEdpl4IeNa2VKQaG9w9HVYuzlslDb/wdVySfF59qfxoqkazlAWGEWZIY
S4vkxlAOTgQJlz5DweEZl30/9hhNxx9bJxy1UXTg0M8DWbuG/1wHvG1R+BY0
CdHDjIaAUe7vlXizU1UITFnvpZUf+raU1owavAuNOqvTRWk85Nnl8orqefpo
oHKopy2u7XqcoCxAbu4aN81Glwl58cXE+rAzXA17iGkFjA8ZLcBBQ9y7cL7j
Tmg0qDoRw3M8wmbuUtO4RXtkauu2hc1RVQTPkNXwrYyownXIMVCpgRAaAZ9s
VJdxJURIITouW3uOtjGqASPteVv6qUZ1T/cU01oOqMnaHaTGJ8cwCWsg9QMd
F79OB94M5wmVcs4s7eAzyslmpehANC0SRmPtfajIvs7f7xIRAxQokz+IvaoB
4gTcQ3g/iLclcc9C4xjoJt4PoA0z6qvV/hxLwPzMiggmawRswSKn294EMRIH
9Lp58Zqk8/geIY3ZvRlyHvmziZUDaKNN7RovKHMU09IXbSfFAnkY9KKEK+YF
iCLXSHTgljDXMzmTGw88jsj3PFSH4vJok2VgpQyCPtuDzelU109k7x7aLlsN
pXWL2i7KLiySiySQdYlFWZV0hRkUzO/cc7yJuv3vx52YBNU+d0JuBniWzZx4
L/1E9oWZROLN3PkGmMq0pSuHQJbwV8TGXMQTTL1i/G5dEq6gwISfIF90dGlY
9VwVrIn9aj0yLUegPJeFZhUa7Br6rIg0wtmhBFd8wUjPyLViSXhV+cGcbi7G
EB39cHJKJTqiGUJUYieeSUIZn62vOeU2CpQ+A7y1lrocIzyAUx95tRlaCR8Z
z2EGrzonMGzKGFT14svnla+aFjDcKkhEY78fMGKvSY4ZIScN7+qk3POYhy3U
bnqFY/JIuecHPIdDYFyaOgK7SAD4kFh2xbABgV5MC+H2rBl3F6kE48muofYL
G/h+7mZ6ew21H0m1rhB069gshUh9jG5haI2emGJgrdxkXtvM65oJeM4+xTb2
fCVgPKUE4MHh7qtdZMLINZxJNogDzBsnlWwbtgH8mZQJX555cgMNLlOQjW69
hPAoVWO4To+dmO+8h8KPk+sXiS8UOHDX6/LG089/Dn21xhZBX0hW3jzfizgo
KwgOioy/m26Fc9OLDBZI9iwbDioLNZ7/+HLDda8XiFwOL1vp0/EIcl2FtVbd
WHS43uZq7rTa33nONRpJ+Wzvp9GIjALRskYEPF6mqVgvCzStv9oy11oBVnIP
fzpXIMXRP3sB68x/nem3TExm1pr97n6wJY5zFdhYV7hsdtCI76MVjZ5ur2qk
NoCvG7op3B7cb5mm4NrSyamia0s34RsnzfnUUZjDiphD0tKbdhO/nRVUgWRQ
MS/FEOJdoMvj+RYnbD1n/ZHYe8gT1FTuwjI+Y6Ozmc2z4hZbNbr0Yz5dIE2W
1J5bp7mBq/giuVzEJRnOLlH6r7H0ItwYI/h0NEunU6qgUVNgWH1VFovLq4hu
7OKyjOdwBXE4HsbcIFfM8VrRdVpKzfd0ZgvlISWNc+mNFVlxVpNG6daKga76
JKmAVgvgbc6qsLIM5JgM73SXb5B02JOrNLlmzlOLXoFB1JGH5W5hXjuZa4Ms
wETZyUk7eCwdAXbaSmJSbFUvwiZbTGztuba5D4M5koTrjV1phbuxQ6ESgiri
igUJuxffnVZ9jr0hnUnJRVUCep8nXakO7F46wbjWaSkXuawbOTZOq4voBIeE
S+nk1oc6uZZ45d0F2vZrI7YIx/Tx42/4jGAWP6scMNXQFHBlKXYKRjcYYGVM
ILT55hhyILCT1aAD8XQYoow89VluDjMm7L1eZHi5S/LMCYU8nmPCQTj5qSgd
9FGSqMkYA17rckH1UKcFysLDaA7TyKXCzDStysW85iSdMRazyeJ8gn9KTLnN
hFmiXVCioRVyMSSfbm89+/SJKQ/8/i1yvkdopzgvoVer7Ow8VKHxU0Bnswar
j7ooMqGSngEFB96O0W6XsjKV/PQVkFAXAsQtnVP+5YZLIfrVgXiWp9WVSMxp
QSOjg7ot/c5VaIMQQ1Ob1uI3Vaomr4grxmvUwVCUAHea0sEqY9KuSaxpQgVX
53F9Je7pKWxlMV3Q9sR2VRFOPp+wyYELeBJEXPyqlfzxw/394sQQcNK8VpRx
s5YqyO6w2YBpe+ZsHuZqUaEwQkQcdenF1CkGjHZYpQIzognCmyp6nuPWXsot
Q3ZEdrGmCOUyrd6PVcaBLoTxy4Jq7hfpK7KwpDFz2422hjyWOcvJCUcQtW9O
VxDgRm5qzAWK8UlC9IuMoEBc0rmpj4yXG1mJfc8fNCNPaoMPsRUuCxPF6RIM
WAuV0r413XOAAnE10nNTGhunhJC/hC5u4ltViPs6PGMCHFYXU9kqqTYXV3xQ
jSK5HcL86YzztCPtApxk2sX+KTGybDbCxdMbtdUnFoLBjFRwi+qV4hyQr6cZ
hk7Y0Od73oE2BXyFieuqAQcBYEHmK45FL2gFNgj8hu0+WaN3Z2+YWtJq3FjI
5VhuSOSXcPVw+Bq3Pqm94MEM+aKpLLctrzxDNp5yIDirhS4XQOoySvig7wrh
Bjc3n3AeJWTdACETqitZJ3g3oq7X58+8hMunV52RKpwjWZVQ7iwG2z85Phyo
krr4gbKkUtgLSNITXUScy7t6J5/xFK9c9BIgKIQZ+ucJGy8rcXvh+oOTFCml
GxH6rjx9SI6kD9ss5nKFBRWlrfu4yVXNPDXxGRidTuNi/moYtCoydReigtEU
rMOgJtPDkJ0KfVBIiVgjJNgz5FYBHWeYvZa0hFL42+8DFzeOers8J6SpBstI
rYiv3fUhFjUGBfJvsJYUkZnrLxI1wy6usIaufB7oKv+FN5BTZcQ5J8tY79M/
qqr1XB6wcGueFIBvPxHnhrsLfKvV3SKY1OmbI1opmYGyKJpQsRDgthP7gl15
mJQhMgFFVfQIl3DuzMCGr4yn15zdjKUUBnbDqI8TbfCCeQPCRC7M8cC7YGLu
FmcRO3nlsB45O0q6DqyHEFb5IJLSzmjXDei+meEEtY0YteTNtDJ5tR0iKWOO
3Dfk69NUzyOZnImTgym5TPtLS+XYqXbwBmwRT/gvwgR76t+WrCJURJAJ9ZUp
8Yxl3ydIgnD0CVLTYmp4t1n8IZ0tZmqFhg0joMlGp2L7xVsgRWSJ86RYVNlt
mDqFVuoIqiVB5AXUwghQDc8JHWB7F7G4rWt7BvugEMDV4rBeZH1GXGMikOfb
A20gkxIdfXi3tYm/DrQnw95VwclLSLBGs+G1VnHLIfMD7WKzOs5yEadZxUQL
SOKtudcRUmF9EbaaavECEUW0F3bfmRwYQyyvii5P5XCRB+VJkA6Qq45lqC/i
Sa32xAu/ywPPNAVa4mpsdW88kGT/EiDeAPMCF8cMZTNkzZFmqWkhXaOVMU3A
7CaIe8acyaVTxng7EsjZKUWLl1z9mQDpuHRrtw+9XXAF/2QvX28Nxng3RbMA
ps8hr01hBZnMxJk53AmaZUzSQ2iTon13lkxTZA1ykDGrlsPnD8l5gGJVWVpD
HPkfKmYzpHsgs44xgSdC4POn/YTUbT0DbmRR8gaRExZm0CoAno6jRI9S2iHA
bU1KVPFvO/dQxkmdXwt7jeDBgiGNMIPbiPdcAAG+o3gjxZZJ0Vjb6oojIQ8E
OhCg51wMSeQx6RrP7pjUirsT5LqzZHrJRYLIEEGDTYFBLqNLlGpruvsL4PkX
JAmeAutMAvxuHkd7cVkAnYmjI/jP+QL4ecC7agK7fnq1AMJSD6XsSPIB/gWy
fJxkxbXRZ6QlcZTEqGOWTtQsijIKXiFVoDkDkNLLK6pPDC1LWy+gyTy9nie5
6CfNr6gD8GXvG1JYEKeCi0RKm5jE0rDONwXOOzoqqvcF7PVPnGMppVJJ81Sy
OpNXWGpngvgVbRg7JggmnmaJnr84PB56qlUQEeIZiMNAHOP3ZXxO7smn6Ij+
e7xJE/RtAVyMQdB6g/8CTSAXnpwKaGO66JPZbeVDEzaO5d5qMUfdDSNEvKiv
Cjx8KPTekB4Bry2797QElG9YanCsPZyWI5jhxKlYsaU82gWOOUuY9JTI1c8A
qUajUXQOXUec/u/AVKJQKQQl6p9ziqUfzGgmvKEmQq9TimEmJUcvu2vT0/GU
1KokWMe5K/hs857hzWMLZGBn5JUu2mm/ENmMiBJ5aXgZC72sBXb6sctcNbX1
pGEdmBnPTthWp/Y14n4Ralu7e9ekNeSZUnqWfcQs8anGvNyDoYKS2KcDhTol
N+zMXuX0v35MkbyW7A7/XFEmGLk87CHw4HLYouWn1OUtGn7FoXcV6h6Kqh25
ID0xKcaFajVJwxZhxWt3KVh4MFhDK6ykcYQTUCMkBfPIeGqSdllRRmvyG3W/
TU1ttq6j7wx9b5dGheUicasMCtALr2G9poJacexDZXo0VclbcmIsKVpjLjNT
zNsqe0jJrS4p/LarIJOxK1FNNd50YijLJJGDaSrBwWnBbHfIS1ESC/59B9DC
FQBUoOGAkkd+MIkKJfGqeA/1l5QpQ97TO/LCyegQQhvAApbjBdBZ+r7pKCzx
Cr2eqpVlulAbkuSAmpNEM5nshg0XYI1Hw1UPCna9q5CQnbaV0jC+gOKjOdva
XyosUNCLBG0Rxhs70UdyTt/AoQ734e8nQ37Aa4QHf5J0NR9t2pqN59RyIwiY
2RiqFi+xq81n6tHpj/jN5uPHT3am5892dp5sbm3rT45e43vM0KEe7u3v4lN0
6ZGHn4Yr5mNDcj5zPr94+u2zh50PHuwx4gejR2M+jdk8+bYxPrudNmdgnU7X
AoufVaUJmKfhTH4BYHnovfGztawxiW2YxYNO4of94zGfz+Wj80gm+q8xmImZ
ZTlgzXFN0dgvG9l0Ysakf//co9HxZKMvVdfJ3lz/ZGOsgTiaLsXaNQElhG8N
SFlquPqwGA+M+x+ZEHhJN+y21oeduE02FrC12YbL/c3twb3xmT0hH24kB5De
J3ZdIQ5tLWaRr3PFVmNTxbRJdpvALO4c0LATDvQloR4/2ZHv4aHJunNCfvCk
JjIhjjvEQI3Qhb6toR/0CKfAu4DavmiJidSf4T0Bnxk7zk70Eg268EQcDdQD
ua2VP+QOXtDm1avmG4J3GB9GXDbD15rTfAZcGF3NxZEKvqKqjgJW4DJXAoNa
rQcAzBKl6pTznSHPw3rfTMvlJVPgHYomR/UHPNaxLwyDNs9dBoHDLsNcD4lF
Zm4N2aYsviWNkEqnBOwwMYuaA/eyZ+O3ODn5m7v0muusf0wG3Ihhuw4ebdw7
0CJHUXr5fYkht4Eeok862dWBTr3ekzEtZIcmK2ynBhGeYAYzM7PddUPRUpNM
rvIUpjhW37mwL1OMsC90fNrIjzDQH+6pAEwJbBn3Ns18OUa1a8InLgi8BfuW
xX9LB+2hTWYWW2PaT79qbXMWQbiFjjuzXTWH0wNtjyNEiB0dIdCyWhu40L6u
l25dnnM2HfnXixo2wwR7Iy1oC/20h580fS7Ho3jzBLEMxinJe4HpuU1InhHk
jctZcEj3NVLw1FpFfkApioMzScOrOpkLVodQ87tshRtamyVytYHarPgn/Gvu
/L6f4sTEIg4QT5rY2jYT7C2U/Friu+AjuFEc2mgivBzX3ZfbLSe+bUr+mTff
K7B4UVAaRo2zT0EV5jQLpG0V97HUQmpGTijdlRAs5xqk6gtUHluADguWChZB
r0OdLd5qFdrDNleok4LZHoaPguodXYEUQz/xvLsyzLb3VT5/41NDZ2bgBZDa
e2dJtYXnXrEmMb85FsvBtKmBy4pLYGkoqCnD+vaTsiCdk1Wu7Eg4v9VNKS2D
utlDJD32NSRaQUInrwV/jGujn27IS0eKbFMlCqFV2q5Qy6VDAb0oYtaysAYp
KPAgNsmWgVYovgIiY8tr93onNnywBYXKREJsG4how37WIgpBnDL5+rBhqq2u
49fT+ny2OgG5y7+7OgH51v9WJ3gj/2dXJ+DAf38F3H8rNf7dKDUeQqfhEfD7
qTVMF19Ls8GS+OdqNuC3za+n2fhc1cYD6DQYDOvoNGTpDZ2GqEXadRpKEWJ1
Gs+sTiPM6bFMr/EfUKr/28jTW03B8J7i9Pb4AWRpzWYHojNx0jqJDKVAwml9
qcw8S8sSnSxCHp+E56FIelRJ4fhwCEAY+oqsQFQdtsiqItJ9E/0urV8szlF8
QsejorzdcfMlMnjoOcZ4CfwmSA2NWq7d+9j2JYZyXaEtXF0jS4PINA7XtXMC
un1cAxqSeRba8kLG5EpSGdAhta4D+oyujEBLWhb+p2Ur/3P/qq7n1c6jR5cg
7sFIMNFHs8usfjS/hQvsUQ2C1qNZDFtUPjI+IY+mQI9rm8RqPL8diNRc2mFd
tmyrESQVZiq+dKYv3sUQ8hbqRiCqiWZdtgJ/HNnsWvj6zcHu/tFBRP4L5LGY
1Is5iRdSEYR1pIsKXSSct/649/8BJvKK+kcpAQA=

-->

</rfc>
