<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.11 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc strict="yes"?>
<?rfc compact="yes"?>

<rfc ipr="trust200902" docName="draft-minaburo-schc-flow-compression-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SCHC for Flow">Static Context Header Compression and Fragmentation for packets establishing a flow</title>

    <author initials="L." surname="Toutain" fullname="Laurent Toutain">
      <organization>Institut MINES TELECOM; IMT-Atlantique</organization>
      <address>
        <postal>
          <street>2 rue de la Chataigneraie</street>
          <city>35576 Cesson-Sevigne Cedex</city>
          <country>France</country>
        </postal>
        <email>Laurent.Toutain@imt-atlantique.fr</email>
      </address>
    </author>
    <author initials="A." surname="Minaburo" fullname="Ana Minaburo">
      <organization>Consultant</organization>
      <address>
        <postal>
          <street>Rue de Rennes</street>
          <city>35510 Cesson-Sevigne Cedex</city>
          <country>France</country>
        </postal>
        <email>anaminaburo@gmail.com</email>
      </address>
    </author>

    <date year="2023" month="October" day="12"/>

    <area>Internet</area>
    <workgroup>SCHC Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes how to compress the header of packets belonging to a flow using Static Context Header Compression and Fragmentation (SCHC) specifications.</t>



    </abstract>



  </front>

  <middle>


<section anchor="Introduction"><name>Introduction</name>

<t>This document defines how to use Static Context Header Compression and fragmentation (SCHC) <xref target="RFC8724"/> and <xref target="RFC8824"/> for compressing the headers of packets in a flow.</t>

<t>SCHC compresses headers of individual packets without any dependency among them, it does not have the notion of flow. In a flow, some information on the header change in each packet. When using SCHC, the information described in the Rule <bcp14>MAY</bcp14> change to consider this dependency. This document solves the possibility of optimizing the use of SCHC while compressing the flow packet headers.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>This document will follow the terms defined in <xref target="RFC8724"/> and in <xref target="RFC8824"/>.</t>

<t><list style="symbols">
  <t>Rule. Part of the Context that describes how a packet is Compressed/Decompressed or Fragmented/Reassembled.</t>
  <t>Rule Manager (RM). It is in charge of handling data derived from the YANG Data Model and apply changes to the rules context.</t>
  <t>Action. Indication in the Rule to perform some operations.
*</t>
  <t>To Do</t>
</list></t>

</section>
<section anchor="flow-compression"><name>Flow Compression</name>

<t>This document does not change the way SCHC compresses and chooses a Rule. The behavior defined in <xref target="RFC8724"/> is respected. SCHC compressor compresses each packet separately and <bcp14>MAY</bcp14> select the best behavior Rule for each packet. For instance, an action in the Rule indicates that the description compresses the header of a flow, and the compressor will process the packets using the action Derivable behavior.</t>

<section anchor="action-derivable"><name>
## Action Derivable</name>

<t>This Action identifies those Rules describing protocol headers using flows to transmit payloads such as TCP, RTP, SCTP, or any other protocol. When SCHC compresses a packet belonging to a flow, it <bcp14>MUST</bcp14> first identify whether it belongs to a flow. SCHC will check the IP addresses and the ports and keep a reference value for the sequence number, the timestamp, and any other field that maintain the flow description. The fields describing a flow are out of the scope of this document. Each protocol <bcp14>MUST</bcp14> define the corresponding fields.</t>

<t>The following packets belonging to a flow will use a Derived Rule which updates the fields changing on each flow packet. The Derived Rule is NOT limited to a number. SCHC C/D Rule Manager decides when to create a new Derived Rule or delete it. At the end of the flow, SCHC <bcp14>MUST</bcp14> delete all the Derived Rules.</t>

<t><xref target="Figure-Action"/> Shows the format of a Rule with Derivable Action.</t>

<figure title="Rule with Derivable Action" anchor="Figure-Action"><artwork><![CDATA[
  Rule 1000
  Action: Derivable
  +----------------+--+--+--+--------+--------+-----------++------+
  |       FID      |FL|FP|DI|    TV  |   MO   |     CDA   || Sent |
  |                |  |  |  |        |        |           ||[bits]|
  +----------------+--+--+--+--------+--------------------++------+
  |IPv6 Version    |4 |1 |Bi|6       | ignore | not-sent  ||      |
  |    ...                                                ||      |
  |IPv6 AppIID     |64|1 |Bi|::1     | equal  | not-sent  ||      |
  |    ...         |  |  |  |        |        |           ||      |
  |TCP Seq-Num.    |32|1 |Up| 234    | LSB    | MSB       || XXX  |
  +================+==+==+==+========+========+===========++======+

   Rule 1001
   Action: Derivable
   +----------------+--+--+--+--------+--------+-----------++------+
   |       FID      |FL|FP|DI|    TV  |   MO   |     CDA   || Sent |
   |                |  |  |  |        |        |           ||[bits]|
   +----------------+--+--+--+--------+--------------------++------+
   |IPv6 Version    |4 |1 |Bi|6       | ignore | not-sent  ||      |
   |    ...                                                ||      |
   |IPv6 AppIID     |64|1 |Bi|::1     | equal  | not-sent  ||      |
   |    ...         |  |  |  |        |        |           ||      |
   |TCP Seq-Num.    |32|1 |Up| 235    | LSB    |  MSB      || X    |
   +================+==+==+==+========+========+===========++======+    

]]></artwork></figure>

</section>
<section anchor="type-of-rules"><name>Type of Rules</name>

<t>The <xref target="RFC8724"/> defines the format of the Rule and its content. But it does not specify the different types of Rules.
This document specifies two kinds of Rules for compressing the headers of a flow packet.
Based-Rule and Derived-Rule.</t>

<section anchor="based-rule"><name>Based-Rule.</name>
<t>A Based-Rule is a Rule as described in section 7.1 of RFC8724. These Rules are charged at run-time and contain the first values of the flow headers. But it will have the action Derivable.</t>

</section>
<section anchor="Derivable"><name>Derived-Rule.</name>
<t>A Derived-Rule is a short-life updated copy of a Based-Rule. This new Derived Rule has updated TV values of those fields that define the flow as Sequence Number, Timestamp, and any other field describing the flow. The compressor/decompressor will prioritize the last Derived Rule to compress the packet. And when needed, it can create another Derived Rule with new TV values or delete the oldest.</t>

<t>The Rule ID used to identify the Derived Rules is a complementary number of the Based Rule, so if the Based Rule has a 1000 RuleID, the Derived Rule will use 1001, ..., 1020,...</t>

<t>At the end of the flow transmission, SCHC must delete all the Derived Rules.</t>

</section>
</section>
</section>
<section anchor="iana-considerations"><name>IANA considerations</name>
<t>This document has no IANA actions.</t>

</section>
<section anchor="security-considerations"><name>Security considerations</name>
<t>This document does not add any security considerations and follows the <xref target="RFC8724"/>.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname='S. Bradner' initials='S.' surname='Bradner'/>
    <date month='March' year='1997'/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='2119'/>
  <seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>

<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
    <date month='May' year='2017'/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='8174'/>
  <seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>

<reference anchor='RFC8724' target='https://www.rfc-editor.org/info/rfc8724'>
  <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='RFC8824' target='https://www.rfc-editor.org/info/rfc8824'>
  <front>
    <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
    <author fullname='A. Minaburo' initials='A.' surname='Minaburo'/>
    <author fullname='L. Toutain' initials='L.' surname='Toutain'/>
    <author fullname='R. Andreasen' initials='R.' surname='Andreasen'/>
    <date month='June' year='2021'/>
    <abstract>
      <t>This document defines how to compress Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework. SCHC defines a header compression mechanism adapted for Constrained Devices. SCHC uses a static description of the header to reduce the header's redundancy and size. While RFC 8724 describes the SCHC compression and fragmentation framework, and its application for IPv6/UDP headers, this document applies SCHC to CoAP headers. The CoAP header structure differs from IPv6 and UDP, since CoAP uses a flexible header with a variable number of options, themselves of variable length. The CoAP message format is asymmetric: the request messages have a header format different from the format in the response messages. This specification gives guidance on applying SCHC to flexible headers and how to leverage the asymmetry for more efficient compression Rules.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8824'/>
  <seriesInfo name='DOI' value='10.17487/RFC8824'/>
</reference>




    </references>



<section anchor="AppendixA"><name>Appendix A</name>

<t>To Do, examples.</t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors would like to thank (in alphabetic order): ToDo</t>

</section>


  </back>

<!-- ##markdown-source:
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
CiobAAA=

-->

</rfc>

