<?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 docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-haptics-13" category="std" consensus="true" submissionType="IETF" updates="9695" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="RTP-Payload-Haptic">RTP Payload Format for Haptics</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-haptics-13"/>
    <author initials="" surname="HS Yang" fullname="Hyunsik Yang">
      <organization>InterDigital</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>hyunsik.yang@interdigital.com</email>
      </address>
    </author>
    <author initials="X." surname="de Foy" fullname="Xavier de Foy">
      <organization>InterDigital</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>xavier.defoy@interdigital.com</email>
      </address>
    </author>
    <date/>
    <area>Transport</area>
    <workgroup>avtcore</workgroup>
    <abstract>
      <?line 61?>

<t>This memo specifies an RTP payload format for the MPEG-I haptic data. A haptic media stream is composed of MIHS units including a MIHS (MPEG-I Haptic Stream) unit header and zero or more MIHS packets. The RTP payload header format allows for packetization of a MIHS unit in an RTP packet payload as well as fragmentation of a MIHS unit into multiple RTP packets. The original subtype registration for haptics/hmpg, registered with IANA in RFC9695, did not include any required or optional parameters. This memo updates RFC9695 and the haptics/hmpg registration to add optional parameters. It also provides SDP usage information for the haptics media type.</t>
    </abstract>
  </front>
  <middle>
    <?line 65?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Haptics provides users with tactile effects in addition to audio and video, allowing them to experience sensory immersion. Haptic data is mainly transmitted to devices that act as actuators and provides them with information to operate according to the values defined in haptic effects. The IETF registered haptics as a primary media type akin to audio and video <xref target="RFC9695"/>.</t>
      <t>The MPEG Haptics Coding standard <xref target="ISO.IEC.23090-31"/> defines the data formats, metadata, and codec architecture to encode, decode, synthesize and transmit haptic signals. Within this MPEG standard, a haptic media stream is composed of MIHS units including a MIHS unit header and zero or more MIHS packets. The MIHS unit is a unit of packetization suitable for streaming, and similar in essence to the NAL (Network Abstraction Layer) unit defined in some video specifications. This document specifies how haptic data (MIHS units) can be transmitted using the RTP protocol. This document follows recommendations in <xref target="RFC8088"/> and <xref target="RFC2736"/> for RTP payload format writers. This document does not specify synchronization (lip sync) mechanisms between haptics and audio/video components.  In addition, this document specifies the associated SDP parameters and SDP Offer/Answer considerations for the haptics media type.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions</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.</t>
    </section>
    <section anchor="definition">
      <name>Definition</name>
      <t>This document uses the definitions of the MPEG Haptics Coding standard <xref target="ISO.IEC.23090-31"/>. Some of these terms are provided here for convenience.</t>
      <t>Actuator: component of a device for rendering haptic sensations.</t>
      <t>Avatar: body (or part of body) representation.</t>
      <t>Band: component in a channel for containing effects for a specific range of frequencies.</t>
      <t>Channel: component in a perception containing one or more bands rendered on a device at a specific body location.</t>
      <t>Device: physical system having one or more actuators configured to render a haptic sensation corresponding with a given signal.</t>
      <t>Effect: component of a band for defining a signal, consisting of a haptic waveform or one or more haptic keyframes.</t>
      <t>Experience: top level haptic component containing perceptions and metadata.</t>
      <t>Haptics: tactile sensations.</t>
      <t>Keyframe: component of an effect mapping a position in time or space to an effect parameter such as amplitude or frequency.</t>
      <t>Metadata: global information about an experience, perception, channel, or band.</t>
      <t>MIHS unit: unit of packetization of the MPEG-I Haptic Stream format, which is used as unit of payload in the format described in this memo. See <xref target="haptic-format-description"/> for details.</t>
      <t>Modality: type of haptics, such as vibration, force, pressure, position, velocity, or temperature.</t>
      <t>Perception: haptic perception containing channels of a specific modality.</t>
      <t>Signal: representation of the haptics associated with a specific modality to be rendered on a device.</t>
      <t>Hmpg format: hmpg is a binary compressed format for haptics data. Information is stored in a binary form and data compression is applied on data at the band level. The haptics/hmpg media subtype is registered in <xref target="RFC9695"/> and updated by this memo.</t>
      <t>Independent unit: a MIHS unit is independent if it can be decoded independently from earlier units. Independent units contain timing information and are also called "sync units" in <xref target="ISO.IEC.23090-31"/>.</t>
      <t>Dependent unit: a MIHS unit is dependent if it requires earlier units for decoding. Dependent units do not contain timing information and are also called "non-sync units" in <xref target="ISO.IEC.23090-31"/>.</t>
      <t>Time-independent effect: a haptic effect that occurs regardless of time. The tactile feedback of a texture is a representative example. Time-independent effects are encoded in spatial MIHS units, defined in <xref target="MIHS-format"/>.</t>
      <t>Time-dependent effect: a haptic effect that varies over time. For example, tactile feedback for vibration and force  are time-dependent effects, and are encoded in temporal MIHS units, defined in <xref target="MIHS-format"/>.</t>
    </section>
    <section anchor="haptic-format-description">
      <name>Haptic Format Description</name>
      <section anchor="overview-of-haptic-coding">
        <name>Overview of Haptic Coding</name>
        <t>The MPEG Haptics Coding standard specifies methods for efficient transmission and rendering of haptic signals, to enable immersive experiences. It supports multiple types of perceptions, including the most common vibrotactile (sense of touch that perceives vibrations) and kinesthetic perceptions (tactile resistance or force), but also other, less common perceptions, including for example the sense of temperature or texture. It also supports two approaches for encoding haptic signals: a "quantized" approach based on samples of measured data, and a "descriptive" approach where the signal is synthesized using a combination of functions. Both quantized and descriptive data can be encoded in a text-based exchange format based on JSON (.hjif), or in a binary packetized format for distribution and streaming (.hmpg). This last format is referred to as the MIHS format and is a base for the RTP payload format described in this document.</t>
      </section>
      <section anchor="MIHS-format">
        <name>MIHS format</name>
        <t>MIHS is a stream format used to transport haptic data. Haptic data including haptic effects is packetized according to the MIHS format, and delivered to actuators, which operate according to the provided effects. The MIHS format has two levels of packetization, MIHS units and MIHS packets.</t>
        <t>MIHS units are composed of a MIHS unit header and zero or more MIHS packets. Four types of MIHS units are defined. An initialization MIHS unit contains MIHS packets carrying metadata necessary to reset and initialize a haptic decoder, including a timestamp. A temporal MIHS unit contains one or more MIHS packets defining time-dependent effects and providing modalities such as pressure, velocity, and acceleration. The duration of a temporal unit is a positive number. A spatial MIHS unit contains one or more MIHS packets providing time-independent effects, such as vibrotactile texture, stiffness, and friction. The duration of a spatial unit is always zero.
A silent MIHS unit indicates that there is no effect during a time interval and its duration is a positive number.</t>
        <t>A MIHS unit can be marked as independent or dependent. When a decoder processes an independent unit, it resets the previous effects and therefore provides a haptic experience independent from any previous MIHS unit.  A dependent unit is the continuation of previous MIHS units and cannot be independently decoded and rendered without having decoded previous MIHS unit(s). Initialization and spatial MIHS units are always independent units. Temporal and silent MIHS units can be dependent or independent units.</t>
        <t><xref target="_figure-stream"/> illustrates a succession of MIHS units in a MIHS stream.</t>
        <figure anchor="_figure-stream">
          <name>Example of MIHS stream</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="528" viewBox="0 0 528 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
                <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
                <path d="M 96,32 L 96,80" fill="none" stroke="black"/>
                <path d="M 160,32 L 160,80" fill="none" stroke="black"/>
                <path d="M 176,32 L 176,80" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,80" fill="none" stroke="black"/>
                <path d="M 296,32 L 296,80" fill="none" stroke="black"/>
                <path d="M 408,32 L 408,80" fill="none" stroke="black"/>
                <path d="M 424,32 L 424,80" fill="none" stroke="black"/>
                <path d="M 520,32 L 520,80" fill="none" stroke="black"/>
                <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
                <path d="M 96,32 L 160,32" fill="none" stroke="black"/>
                <path d="M 176,32 L 280,32" fill="none" stroke="black"/>
                <path d="M 296,32 L 408,32" fill="none" stroke="black"/>
                <path d="M 424,32 L 520,32" fill="none" stroke="black"/>
                <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
                <path d="M 96,80 L 160,80" fill="none" stroke="black"/>
                <path d="M 176,80 L 280,80" fill="none" stroke="black"/>
                <path d="M 296,80 L 408,80" fill="none" stroke="black"/>
                <path d="M 424,80 L 520,80" fill="none" stroke="black"/>
                <g class="text">
                  <text x="44" y="52">Initial*</text>
                  <text x="128" y="52">Spatial</text>
                  <text x="228" y="52">Temporal</text>
                  <text x="332" y="52">Temporal</text>
                  <text x="388" y="52">Unit</text>
                  <text x="452" y="52">Silent</text>
                  <text x="500" y="52">Unit</text>
                  <text x="36" y="68">Unit</text>
                  <text x="88" y="68">-</text>
                  <text x="124" y="68">Unit</text>
                  <text x="168" y="68">-</text>
                  <text x="228" y="68">Unit(indep.)</text>
                  <text x="288" y="68">-</text>
                  <text x="352" y="68">(dependent)</text>
                  <text x="416" y="68">-</text>
                  <text x="468" y="68">(indep.)</text>
                  <text x="72" y="100">*Initialization</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+--------+ +-------+ +------------+ +-------------+ +-----------+
|Initial*| |Spatial| |  Temporal  | |Temporal Unit| |Silent Unit|
| Unit   |-| Unit  |-|Unit(indep.)|-| (dependent) |-| (indep.)  |
+--------+ +-------+ +------------+ +-------------+ +-----------+
 *Initialization
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="payload-format-for-haptics">
      <name>Payload Format For Haptics</name>
      <section anchor="rtp-usage">
        <name>RTP Header Usage</name>
        <t>The RTP header is defined in <xref target="RFC3550"/> and represented in <xref target="_figure-rtpheader"/>. Unless contextualized below, the meaning of the fields depicted in  <xref target="_figure-rtpheader"/> is the same as in <xref target="rtp-usage"/> of <xref target="RFC3550"/>.</t>
        <figure anchor="_figure-rtpheader">
          <name>RTP header for Haptic.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 8,208" fill="none" stroke="black"/>
                <path d="M 40,64 L 40,96" fill="none" stroke="black"/>
                <path d="M 56,64 L 56,96" fill="none" stroke="black"/>
                <path d="M 72,64 L 72,96" fill="none" stroke="black"/>
                <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
                <path d="M 152,64 L 152,96" fill="none" stroke="black"/>
                <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
                <path d="M 520,64 L 520,208" fill="none" stroke="black"/>
                <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 520,208" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="36">0</text>
                  <text x="176" y="36">1</text>
                  <text x="336" y="36">2</text>
                  <text x="496" y="36">3</text>
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="144" y="52">8</text>
                  <text x="160" y="52">9</text>
                  <text x="176" y="52">0</text>
                  <text x="192" y="52">1</text>
                  <text x="208" y="52">2</text>
                  <text x="224" y="52">3</text>
                  <text x="240" y="52">4</text>
                  <text x="256" y="52">5</text>
                  <text x="272" y="52">6</text>
                  <text x="288" y="52">7</text>
                  <text x="304" y="52">8</text>
                  <text x="320" y="52">9</text>
                  <text x="336" y="52">0</text>
                  <text x="352" y="52">1</text>
                  <text x="368" y="52">2</text>
                  <text x="384" y="52">3</text>
                  <text x="400" y="52">4</text>
                  <text x="416" y="52">5</text>
                  <text x="432" y="52">6</text>
                  <text x="448" y="52">7</text>
                  <text x="464" y="52">8</text>
                  <text x="480" y="52">9</text>
                  <text x="496" y="52">0</text>
                  <text x="512" y="52">1</text>
                  <text x="24" y="84">V=2</text>
                  <text x="48" y="84">P</text>
                  <text x="64" y="84">X</text>
                  <text x="100" y="84">CC</text>
                  <text x="144" y="84">M</text>
                  <text x="204" y="84">PT</text>
                  <text x="356" y="84">Sequence</text>
                  <text x="420" y="84">Number</text>
                  <text x="264" y="116">Timestamp</text>
                  <text x="160" y="148">Synchronization</text>
                  <text x="252" y="148">Source</text>
                  <text x="308" y="148">(SSRC)</text>
                  <text x="380" y="148">Identifier</text>
                  <text x="156" y="180">Contributing</text>
                  <text x="236" y="180">Source</text>
                  <text x="292" y="180">(CSRC)</text>
                  <text x="368" y="180">Identifiers</text>
                  <text x="260" y="196">....</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X|  CC   |M|     PT      |       Sequence Number         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Timestamp                           |
+---------------------------------------------------------------+
|           Synchronization Source (SSRC) Identifier            |
+---------------------------------------------------------------+
|            Contributing Source (CSRC) Identifiers             |
|                             ....                              |
+---------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Marker bit (M): 1 bit. The marker bit SHOULD be set to one in the first non-silent RTP packet after a period of haptic silence. This enables jitter buffer adaptation and haptics device washout (i.e., reset to a neutral position) prior to the beginning of the burst with minimal impact on the quality of experience for the end user. The marker bit in all other packets MUST be set to zero.</t>
        <t>Timestamp (TS): 32 bits. A timestamp representing the sampling time of the first sample of the MIHS unit in the RTP payload. The clock frequency MUST be set to the sample rate of the encoded haptic data and is conveyed out-of-band (e.g., as an SDP parameter).</t>
      </section>
      <section anchor="payload-header">
        <name>Payload Header</name>
        <t>The RTP payload header follows the RTP header. <xref target="_figure-payloadheader"/> describes the RTP payload header for Haptic.</t>
        <figure anchor="_figure-payloadheader">
          <name>RTP Payload Header for Haptic.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="144" viewBox="0 0 144 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 24,32 L 24,96" fill="none" stroke="black"/>
                <path d="M 40,32 L 40,64" fill="none" stroke="black"/>
                <path d="M 56,32 L 56,64" fill="none" stroke="black"/>
                <path d="M 72,32 L 72,96" fill="none" stroke="black"/>
                <path d="M 88,32 L 88,64" fill="none" stroke="black"/>
                <path d="M 104,32 L 104,64" fill="none" stroke="black"/>
                <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
                <path d="M 136,32 L 136,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 136,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 136,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 136,96" fill="none" stroke="black"/>
                <g class="text">
                  <text x="16" y="52">0</text>
                  <text x="32" y="52">1</text>
                  <text x="48" y="52">2</text>
                  <text x="64" y="52">3</text>
                  <text x="80" y="52">4</text>
                  <text x="96" y="52">5</text>
                  <text x="112" y="52">6</text>
                  <text x="128" y="52">7</text>
                  <text x="16" y="84">D</text>
                  <text x="44" y="84">UT</text>
                  <text x="104" y="84">L</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-+-+-+-+-+-+-+-+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|D| UT  |   L   |
+-+-----+-------+
]]></artwork>
          </artset>
        </figure>
        <t>D (Dependency, 1 bit): this field is used to indicate whether the MIHS unit included in the RTP payload is, when its value is one, dependent or, when its value is zero, independent.</t>
        <t>UT (Unit Type, 3 bits): this field indicates the type of the MIHS unit included in the RTP payload. UT field values are listed in <xref target="_figure-transmission-type"/>.</t>
        <t>L (MIHS Layer, 4 bits): this field is an integer value which indicates the priority order of the MIHS unit included in the RTP payload, as determined by the haptic sender (e.g., by the haptic codec), based on application-specific needs. For example, the sender may use the MIHS layer to prioritize perceptions with the largest impact on the end-user experience. Zero corresponds to the highest priority. The semantic of individual MIHS layers are not specified and left for the application to assign. In cases where the sender does not use the L field to indicate the priority order of the MIHS unit, L value is '0'.</t>
      </section>
      <section anchor="payload-structures">
        <name>Payload Structures</name>
        <t>Three different types of RTP packet payload structures are specified. A single unit packet contains a single MIHS unit in the payload.  A fragmentation unit contains a subset of a MIHS unit. An aggregation packet contains multiple MIHS units in the payload. The unit type (UT) field of the RTP payload header, as shown in  <xref target="_figure-transmission-type"/>, identifies both the payload structure and, in the case of a single-unit structure, also identifies the type of MIHS unit present in the payload.</t>
        <figure anchor="_figure-transmission-type">
          <name>Payload structure type for haptic</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="456" viewBox="0 0 456 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,64 L 440,64" fill="none" stroke="black"/>
                <g class="text">
                  <text x="20" y="36">Unit</text>
                  <text x="104" y="36">Payload</text>
                  <text x="180" y="36">Packet</text>
                  <text x="228" y="36">Type</text>
                  <text x="268" y="36">Name</text>
                  <text x="20" y="52">Type</text>
                  <text x="112" y="52">Structure</text>
                  <text x="8" y="84">0</text>
                  <text x="88" y="84">N/A</text>
                  <text x="196" y="84">Unassigned</text>
                  <text x="8" y="100">1</text>
                  <text x="100" y="100">Single</text>
                  <text x="212" y="100">Initialization</text>
                  <text x="292" y="100">MIHS</text>
                  <text x="332" y="100">Unit</text>
                  <text x="8" y="116">2</text>
                  <text x="100" y="116">Single</text>
                  <text x="188" y="116">Temporal</text>
                  <text x="244" y="116">MIHS</text>
                  <text x="284" y="116">Unit</text>
                  <text x="8" y="132">3</text>
                  <text x="100" y="132">Single</text>
                  <text x="184" y="132">Spatial</text>
                  <text x="236" y="132">MIHS</text>
                  <text x="276" y="132">Unit</text>
                  <text x="8" y="148">4</text>
                  <text x="100" y="148">Single</text>
                  <text x="180" y="148">Silent</text>
                  <text x="228" y="148">MIHS</text>
                  <text x="268" y="148">Unit</text>
                  <text x="8" y="164">5</text>
                  <text x="92" y="164">Aggr</text>
                  <text x="200" y="164">Single-Time</text>
                  <text x="296" y="164">Aggregation</text>
                  <text x="372" y="164">Packet</text>
                  <text x="428" y="164">(STAP)</text>
                  <text x="8" y="180">6</text>
                  <text x="92" y="180">Aggr</text>
                  <text x="196" y="180">Multi-Time</text>
                  <text x="288" y="180">Aggregation</text>
                  <text x="364" y="180">Packet</text>
                  <text x="420" y="180">(MTAP)</text>
                  <text x="8" y="196">7</text>
                  <text x="92" y="196">Frag</text>
                  <text x="208" y="196">Fragmentation</text>
                  <text x="284" y="196">Unit</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
Unit     Payload   Packet Type Name
Type     Structure
-------------------------------------------------------
0        N/A       Unassigned
1        Single    Initialization MIHS Unit
2        Single    Temporal MIHS Unit
3        Single    Spatial MIHS Unit
4        Single    Silent MIHS Unit
5        Aggr      Single-Time Aggregation Packet (STAP)
6        Aggr      Multi-Time Aggregation Packet (MTAP)
7        Frag      Fragmentation Unit
]]></artwork>
          </artset>
        </figure>
        <t>The payload structures are represented in <xref target="_figure-transmission-style"/>.  The single unit payload structure is specified in <xref target="single"/>. The fragmented unit payload structure is specified in <xref target="fragmented"/>. The aggregation packet payload structure is specified in <xref target="aggregated"/>.  The padding in the figures of these section refers to the RTP padding defined in <xref target="RFC3550"/>.</t>
        <figure anchor="_figure-transmission-style">
          <name>RTP Transmission modes</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="528" viewBox="0 0 528 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,128 L 8,240" fill="none" stroke="black"/>
                <path d="M 168,128 L 168,240" fill="none" stroke="black"/>
                <path d="M 184,96 L 184,240" fill="none" stroke="black"/>
                <path d="M 344,96 L 344,240" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,240" fill="none" stroke="black"/>
                <path d="M 520,32 L 520,240" fill="none" stroke="black"/>
                <path d="M 360,32 L 520,32" fill="none" stroke="black"/>
                <path d="M 360,64 L 520,64" fill="none" stroke="black"/>
                <path d="M 184,96 L 344,96" fill="none" stroke="black"/>
                <path d="M 360,112 L 520,112" fill="none" stroke="black"/>
                <path d="M 8,128 L 168,128" fill="none" stroke="black"/>
                <path d="M 184,128 L 344,128" fill="none" stroke="black"/>
                <path d="M 360,144 L 520,144" fill="none" stroke="black"/>
                <path d="M 8,160 L 168,160" fill="none" stroke="black"/>
                <path d="M 184,176 L 344,176" fill="none" stroke="black"/>
                <path d="M 360,176 L 520,176" fill="none" stroke="black"/>
                <path d="M 8,192 L 168,192" fill="none" stroke="black"/>
                <path d="M 184,208 L 344,208" fill="none" stroke="black"/>
                <path d="M 360,208 L 520,208" fill="none" stroke="black"/>
                <path d="M 8,240 L 168,240" fill="none" stroke="black"/>
                <path d="M 184,240 L 344,240" fill="none" stroke="black"/>
                <path d="M 360,240 L 520,240" fill="none" stroke="black"/>
                <g class="text">
                  <text x="416" y="52">RTP</text>
                  <text x="460" y="52">Header</text>
                  <text x="384" y="84">RTP</text>
                  <text x="432" y="84">Payload</text>
                  <text x="492" y="84">Header</text>
                  <text x="400" y="100">(UT</text>
                  <text x="424" y="100">=</text>
                  <text x="456" y="100">Aggr)</text>
                  <text x="240" y="116">RTP</text>
                  <text x="284" y="116">Header</text>
                  <text x="396" y="132">MIHS</text>
                  <text x="436" y="132">unit</text>
                  <text x="464" y="132">1</text>
                  <text x="492" y="132">Size</text>
                  <text x="64" y="148">RTP</text>
                  <text x="108" y="148">Header</text>
                  <text x="208" y="148">RTP</text>
                  <text x="256" y="148">Payload</text>
                  <text x="316" y="148">Header</text>
                  <text x="224" y="164">(UT</text>
                  <text x="248" y="164">=</text>
                  <text x="280" y="164">Frag)</text>
                  <text x="412" y="164">MIHS</text>
                  <text x="452" y="164">Unit</text>
                  <text x="480" y="164">1</text>
                  <text x="32" y="180">RTP</text>
                  <text x="80" y="180">Payload</text>
                  <text x="140" y="180">Header</text>
                  <text x="236" y="196">FU</text>
                  <text x="276" y="196">Header</text>
                  <text x="396" y="196">MIHS</text>
                  <text x="436" y="196">unit</text>
                  <text x="464" y="196">2</text>
                  <text x="492" y="196">Size</text>
                  <text x="56" y="212">RTP</text>
                  <text x="104" y="212">Payload</text>
                  <text x="48" y="228">(Single</text>
                  <text x="100" y="228">MIHS</text>
                  <text x="144" y="228">unit)</text>
                  <text x="232" y="228">RTP</text>
                  <text x="280" y="228">Payload</text>
                  <text x="432" y="228">...</text>
                  <text x="16" y="276">(a)</text>
                  <text x="60" y="276">single</text>
                  <text x="108" y="276">unit</text>
                  <text x="236" y="276">(b)fragmentation</text>
                  <text x="324" y="276">unit</text>
                  <text x="360" y="276">(c)</text>
                  <text x="424" y="276">aggregation</text>
                  <text x="500" y="276">packet</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                                            +-------------------+
                                            |     RTP Header    |
                                            +-------------------+
                                            | RTP Payload Header|
                      +-------------------+ |   (UT = Aggr)     |
                      |     RTP Header    | +-------------------+
+-------------------+ +-------------------+ |  MIHS unit 1 Size |
|     RTP Header    | | RTP Payload Header| +-------------------+
+-------------------+ |   (UT = Frag)     | |    MIHS Unit 1    |
| RTP Payload Header| +-------------------+ +-------------------+
+-------------------+ |     FU Header     | |  MIHS unit 2 Size |
|    RTP Payload    | +-------------------+ +-------------------+
| (Single MIHS unit)| |    RTP Payload    | |       ...         |
+-------------------+ +-------------------+ +-------------------+

(a) single unit      (b)fragmentation unit (c) aggregation packet

]]></artwork>
          </artset>
        </figure>
        <section anchor="single">
          <name>Single Unit Payload Structure</name>
          <t>In a single unit payload structure, as described in <xref target="_figure-transmission-single"/>, the RTP packet contains the RTP header, followed by the payload header and one single MIHS unit. The payload header follows the structure described in <xref target="payload-header"/>. The  payload contains a MIHS unit as defined in <xref target="ISO.IEC.23090-31"/>.</t>
          <figure anchor="_figure-transmission-single">
            <name>Single Unit Payload Structure</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                  <path d="M 136,96 L 136,128" fill="none" stroke="black"/>
                  <path d="M 264,160 L 264,192" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 136,128" fill="none" stroke="black"/>
                  <path d="M 264,160 L 520,160" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="232" y="84">RTP</text>
                    <text x="276" y="84">Header</text>
                    <text x="40" y="116">Payload</text>
                    <text x="100" y="116">Header</text>
                    <text x="220" y="148">MIHS</text>
                    <text x="260" y="148">Unit</text>
                    <text x="300" y="148">Data</text>
                    <text x="312" y="180">...OPTIONAL</text>
                    <text x="376" y="180">RTP</text>
                    <text x="424" y="180">padding</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          RTP Header                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Payload Header |                                               |
+---------------+                                               |
|                        MIHS Unit Data                         |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |...OPTIONAL RTP padding        |
+-------------------------------+-------------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="fragmented">
          <name>Fragmented Unit Payload Structure</name>
          <t>In a fragmented unit payload structure, as described in <xref target="_figure-fragment-structure"/>, the RTP packet contains the RTP header, followed by the payload header, a Fragmented Unit (FU) header, and a MIHS unit fragment. The payload header follows the structure described in <xref target="payload-header"/>. The value of the UT field of the payload header is 7. The FU header follows the structure described in <xref target="_figure-fragment-header"/>. In the case of fragmentation, all RTP payload header fields MUST remain unchanged across all fragments.</t>
          <figure anchor="_figure-fragment-structure">
            <name>Fragmentation Unit Payload Structure</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
                  <path d="M 136,96 L 136,128" fill="none" stroke="black"/>
                  <path d="M 264,96 L 264,128" fill="none" stroke="black"/>
                  <path d="M 264,160 L 264,192" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 264,128" fill="none" stroke="black"/>
                  <path d="M 264,160 L 520,160" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="232" y="84">RTP</text>
                    <text x="276" y="84">Header</text>
                    <text x="40" y="116">Payload</text>
                    <text x="100" y="116">Header</text>
                    <text x="156" y="116">FU</text>
                    <text x="196" y="116">Header</text>
                    <text x="196" y="148">MIHS</text>
                    <text x="236" y="148">Unit</text>
                    <text x="292" y="148">Fragment</text>
                    <text x="312" y="180">...OPTIONAL</text>
                    <text x="376" y="180">RTP</text>
                    <text x="424" y="180">Padding</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          RTP Header                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Payload Header | FU Header     |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                     MIHS Unit Fragment                        |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |...OPTIONAL RTP Padding        |
+-------------------------------+-------------------------------+
]]></artwork>
            </artset>
          </figure>
          <t>FU headers are used to enable fragmenting a single MIHS unit into multiple RTP packets. Fragments of the same MIHS unit MUST be sent in consecutive order with ascending RTP sequence numbers (with no other RTP packets within the same RTP stream being sent between the first and last fragment). FUs MUST NOT be nested, i.e., an FU MUST NOT contain a subset of another FU.</t>
          <t><xref target="_figure-fragment-header"/> describes a FU header, including the following fields:</t>
          <figure anchor="_figure-fragment-header">
            <name>Fragmentation unit header</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="272" viewBox="0 0 272 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                  <path d="M 40,32 L 40,96" fill="none" stroke="black"/>
                  <path d="M 72,32 L 72,96" fill="none" stroke="black"/>
                  <path d="M 104,32 L 104,64" fill="none" stroke="black"/>
                  <path d="M 136,32 L 136,64" fill="none" stroke="black"/>
                  <path d="M 168,32 L 168,96" fill="none" stroke="black"/>
                  <path d="M 200,32 L 200,64" fill="none" stroke="black"/>
                  <path d="M 232,32 L 232,64" fill="none" stroke="black"/>
                  <path d="M 264,32 L 264,96" fill="none" stroke="black"/>
                  <path d="M 8,32 L 264,32" fill="none" stroke="black"/>
                  <path d="M 8,64 L 264,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="24" y="52">0</text>
                    <text x="56" y="52">1</text>
                    <text x="88" y="52">2</text>
                    <text x="120" y="52">3</text>
                    <text x="152" y="52">4</text>
                    <text x="184" y="52">5</text>
                    <text x="216" y="52">6</text>
                    <text x="248" y="52">7</text>
                    <text x="24" y="84">FUS</text>
                    <text x="56" y="84">FUE</text>
                    <text x="112" y="84">RSV</text>
                    <text x="220" y="84">UT</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
+---+---+---+---+---+---+---+---+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+---+---+---+---+---+---+---+
|FUS|FUE|   RSV     |     UT    |
+---+---+-----------+-----------+
]]></artwork>
            </artset>
          </figure>
          <t>FUS (Fragmented Unit Start, 1 bit): this field MUST be set to 1 for the first fragment, and 0 for the other fragments.</t>
          <t>FUE (Fragmented Unit End, 1 bit): this field MUST be set to 1 for the last fragment, and 0 for the other fragments.</t>
          <t>The combination FUS=1 and FUE=1 MUST NOT occur; such packets are invalid.</t>
          <t>RSV (Reserved, 3 bits): these bits MUST be set to 0 by the sender and ignored by the receiver.</t>
          <t>UT (Unit Type, 3 bits): this field indicates the type of the MIHS unit this fragment belongs to, using values defined in <xref target="_figure-transmission-type"/>.</t>
          <t>The use of MIHS unit fragmentation in RTP means that a media receiver can receive some fragments, but not other fragments. The missing fragments will typically not be retransmitted by RTP. This results in partially received MIHS units, which can be either dropped or used by the decoding application, based on implementation. In cases where consecutive fragments with FUE and FUS are lost, the receiver may in some cases be able to detect that surrounding fragments belong to a different partially received MIHS unit (e.g., if the UT field holds a different value).</t>
        </section>
        <section anchor="aggregated">
          <name>Aggregation Packet Payload Structure</name>
          <t>In an aggregation packet, as described in <xref target="_figure-aggre-structure"/>, the RTP packet contains an RTP header, followed by a payload header, and, for each aggregated MIHS Unit, a MIHS unit size followed by the MIHS unit. The payload header follows the structure described in <xref target="payload-header"/>.</t>
          <figure anchor="_figure-aggre-structure">
            <name>Single-Time Aggregation Packet</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="528" viewBox="0 0 528 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
                  <path d="M 8,192 L 8,304" fill="none" stroke="black"/>
                  <path d="M 248,192 L 248,224" fill="none" stroke="black"/>
                  <path d="M 264,96 L 264,128" fill="none" stroke="black"/>
                  <path d="M 264,272 L 264,304" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
                  <path d="M 520,192 L 520,304" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,192 L 520,192" fill="none" stroke="black"/>
                  <path d="M 8,224 L 248,224" fill="none" stroke="black"/>
                  <path d="M 264,272 L 520,272" fill="none" stroke="black"/>
                  <path d="M 8,304 L 520,304" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="232" y="84">RTP</text>
                    <text x="276" y="84">Header</text>
                    <text x="88" y="116">RTP</text>
                    <text x="136" y="116">Payload</text>
                    <text x="196" y="116">Header</text>
                    <text x="340" y="116">MIHS</text>
                    <text x="380" y="116">Unit</text>
                    <text x="408" y="116">1</text>
                    <text x="436" y="116">Size</text>
                    <text x="244" y="148">MIHS</text>
                    <text x="284" y="148">Unit</text>
                    <text x="312" y="148">1</text>
                    <text x="8" y="180">:</text>
                    <text x="520" y="180">:</text>
                    <text x="92" y="212">MIHS</text>
                    <text x="132" y="212">Unit</text>
                    <text x="160" y="212">2</text>
                    <text x="188" y="212">Size</text>
                    <text x="244" y="244">MIHS</text>
                    <text x="284" y="244">Unit</text>
                    <text x="312" y="244">2</text>
                    <text x="312" y="292">...OPTIONAL</text>
                    <text x="376" y="292">RTP</text>
                    <text x="424" y="292">padding</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          RTP Header                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        RTP Payload Header     |       MIHS Unit 1 Size        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           MIHS Unit 1                         |
    |                                                               |
    :                                                               :
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        MIHS Unit 2 Size     |                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                 |
    |                           MIHS Unit 2                         |
    |                                                               |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               |...OPTIONAL RTP padding        |
    +-------------------------------+-------------------------------+
]]></artwork>
            </artset>
          </figure>
          <t><xref target="_figure-aggre-structure"/> shows a Single-Time Aggregation Packet (STAP), which can be used to transmit multiple MIHS units that correspond to the same timestamp. For example, if two frequencies are used for the same content, they can be transmitted at once in a STAP. Multiple spatial units can also be sent together in a STAP, since this type of haptics data is time independent. The MIHS unit length field (16 bits) holds the length of the MIHS unit following it, in bytes. The value of the UT field of the payload header is 5.</t>
          <figure anchor="_figure-aggremtap-structure">
            <name>Multiple-time aggregation packet</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,336" fill="none" stroke="black"/>
                  <path d="M 136,240 L 136,272" fill="none" stroke="black"/>
                  <path d="M 264,96 L 264,128" fill="none" stroke="black"/>
                  <path d="M 264,208 L 264,240" fill="none" stroke="black"/>
                  <path d="M 264,304 L 264,336" fill="none" stroke="black"/>
                  <path d="M 392,128 L 392,160" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,336" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
                  <path d="M 8,160 L 392,160" fill="none" stroke="black"/>
                  <path d="M 8,208 L 520,208" fill="none" stroke="black"/>
                  <path d="M 8,240 L 520,240" fill="none" stroke="black"/>
                  <path d="M 16,272 L 136,272" fill="none" stroke="black"/>
                  <path d="M 264,304 L 520,304" fill="none" stroke="black"/>
                  <path d="M 8,336 L 520,336" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="8" y="36">0</text>
                    <text x="168" y="36">1</text>
                    <text x="328" y="36">2</text>
                    <text x="488" y="36">3</text>
                    <text x="8" y="52">0</text>
                    <text x="24" y="52">1</text>
                    <text x="40" y="52">2</text>
                    <text x="56" y="52">3</text>
                    <text x="72" y="52">4</text>
                    <text x="88" y="52">5</text>
                    <text x="104" y="52">6</text>
                    <text x="120" y="52">7</text>
                    <text x="136" y="52">8</text>
                    <text x="152" y="52">9</text>
                    <text x="168" y="52">0</text>
                    <text x="184" y="52">1</text>
                    <text x="200" y="52">2</text>
                    <text x="216" y="52">3</text>
                    <text x="232" y="52">4</text>
                    <text x="248" y="52">5</text>
                    <text x="264" y="52">6</text>
                    <text x="280" y="52">7</text>
                    <text x="296" y="52">8</text>
                    <text x="312" y="52">9</text>
                    <text x="328" y="52">0</text>
                    <text x="344" y="52">1</text>
                    <text x="360" y="52">2</text>
                    <text x="376" y="52">3</text>
                    <text x="392" y="52">4</text>
                    <text x="408" y="52">5</text>
                    <text x="424" y="52">6</text>
                    <text x="440" y="52">7</text>
                    <text x="456" y="52">8</text>
                    <text x="472" y="52">9</text>
                    <text x="488" y="52">0</text>
                    <text x="504" y="52">1</text>
                    <text x="232" y="84">RTP</text>
                    <text x="276" y="84">Header</text>
                    <text x="88" y="116">RTP</text>
                    <text x="136" y="116">Payload</text>
                    <text x="196" y="116">Header</text>
                    <text x="340" y="116">MIHS</text>
                    <text x="380" y="116">Unit</text>
                    <text x="408" y="116">1</text>
                    <text x="436" y="116">Size</text>
                    <text x="236" y="148">TS</text>
                    <text x="276" y="148">Offset</text>
                    <text x="244" y="180">MIHS</text>
                    <text x="284" y="180">Unit</text>
                    <text x="312" y="180">1</text>
                    <text x="84" y="228">MIHS</text>
                    <text x="124" y="228">Unit</text>
                    <text x="152" y="228">2</text>
                    <text x="180" y="228">Size</text>
                    <text x="372" y="228">TS</text>
                    <text x="412" y="228">Offset</text>
                    <text x="44" y="260">TS</text>
                    <text x="84" y="260">offset</text>
                    <text x="236" y="292">MIHS</text>
                    <text x="276" y="292">Unit</text>
                    <text x="304" y="292">2</text>
                    <text x="312" y="324">...OPTIONAL</text>
                    <text x="376" y="324">RTP</text>
                    <text x="424" y="324">padding</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          RTP Header                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        RTP Payload Header     |       MIHS Unit 1 Size        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           TS Offset           |               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |
    |                           MIHS Unit 1                         |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       MIHS Unit 2 Size        |            TS Offset          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   TS offset   |                                               |
    |-+-+-+-+-+-+-+-+                                               |
    |                          MIHS Unit 2                          |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               |...OPTIONAL RTP padding        |
    +-------------------------------+-------------------------------+
]]></artwork>
            </artset>
          </figure>
          <t><xref target="_figure-aggremtap-structure"/> shows a multi-time aggregation packet. It is used to transmit multiple MIHS units with different timestamps, in one RTP packet. Multi-time aggregation can help reduce the number of packets, in environments where some delay is acceptable. The value of the UT field of the Payload Header is 6. The MIHS unit length field (16 bits) holds the length of the MIHS unit following it, in bytes. The timestamp offset field (TS offset, 16 bits) is present in the MTAP case, and MUST be set to the value of (time of the MIHS unit - RTP timestamp of the packet).  The timestamp offset of the earliest aggregation unit MUST always be zero. Therefore, the RTP timestamp of the MTAP is identical to the earliest MIHS unit time.</t>
        </section>
      </section>
      <section anchor="mihs-trans">
        <name>MIHS Units Transmission and Reception Considerations</name>
        <t>The following considerations apply for the streaming of MIHS units over RTP:</t>
        <t>The MIHS format enables variable duration units and uses initialization MIHS units to declare the duration of subsequent non-zero duration MIHS units, as well as the maximum variation of this duration. A sender SHOULD set constant or low-variability (e.g., lower than the playout buffer) durations in initialization MIHS units, for RTP streaming. This enables the receiver to determine early (e.g., using a timer) when a unit has been lost and make the decoder more robust to RTP packet loss. If a sender sends MIHS units with high duration variations, the receiver MAY need to wait for a long period of time (e.g., the upper bound of the duration variation), to determine if a MIHS unit was lost in transmission. Whether this behavior is acceptable or not is application dependent, and the application can configure the encoder to generate MIHS unit of lengths with the appropriate variation.</t>
        <t>The MIHS format uses silent MIHS units to signal haptic silence. A sender MAY decide not to send silent units, to save network resources. Since, from a receiver standpoint, a missed MIHS unit may originate from a not-sent silent unit, or a lost packet, a sender MAY send one, or a few, MIHS silent units at the beginning of a haptic silence. If a media receiver receives a MIHS silent unit, the receiver SHOULD assume that silence is intended until the reception of a non-silent MIHS unit. This can reduce the number of false detections of lost RTP packets by the decoder.</t>
        <t>In some multimedia conference scenarios using an RTP video mixer (e.g., when adding or selecting a new source), it is recommended to use Full Intra Request (FIR) feedback messages with Haptics <xref target="RFC5104"/>. The purpose of the FIR message is to cause an encoder to send a decoder refresh point at the earliest opportunity. In the context of haptics, an appropriate decoder refresh point is an initialization MIHS unit. The initialization MIHS unit point enables a decoder to be reset to a known state and be able decode all MIHS units following it.</t>
      </section>
    </section>
    <section anchor="payload-format-parameters">
      <name>Payload Format Parameters</name>
      <t>This section describes payload format parameters. <xref target="optional-param"/> specifies new optional parameters and <xref target="sdp-registration"/> further registers a new token in the media sub-registry of the Session Description Protocols (SDP) Parameters registry.</t>
      <section anchor="optional-param">
        <name>Optional Parameters Definition</name>
        <t>It is optional to include the SDP parameters in this section. Some parameters have a default value which MUST be inferred if the parameter is not present in the SDP, unless an out-of-band agreement indicates a different value, as described in <xref target="sdp-cons"/>. The values of the SDP parameters indicated in this section are based on the current version of the MPEG Haptics Coding standard (ISO/IEC 23090-31:2025) and may be different in future versions of <xref target="ISO.IEC.23090-31"/>.</t>
        <t>ver:</t>
        <t>This parameter provides the year of the edition and amendment of ISO/IEC 23090-31 that this file conforms to, as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.version is a string which may hold values such as XXXX or XXXX-Y where XXXX is the year of publication and Y is the amendment number, if any. For the initial (and current) version of the MPEG Haptics Coding standard (ISO/IEC 23090-31:2025) , the value is "2025". When ver  is not present, a default value of "2025" SHOULD be inferred.</t>
        <t>profile:</t>
        <t>This parameter indicates the profile used to generate the encoded stream as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.profile is a string which may hold the values "simple-parametric" or "main". When profile is not present, the default value "main" SHOULD be inferred.</t>
        <t>lvl:</t>
        <t>This parameter indicates the level used to generate the encoded stream as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.level is an integer which may hold the values 1 or 2. When lvl is not present, the default value 2 SHOULD be inferred.</t>
        <t>maxlod:</t>
        <t>This parameter indicates the maximum level of details to use for the avatar(s). The avatar level of detail (LOD) is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.avatar object.lod is an integer which may hold the value 0 or a positive integer.</t>
        <t>avtypes:</t>
        <t>This parameter indicates, using a comma-separated list, types of haptic perception represented by the avatar(s). The avatar type is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.avatar object.type is a string which may hold values among "Vibration", "Pressure", "Temperature", "Custom".</t>
        <t>modalities:</t>
        <t>This parameter indicates, using a comma-separated list, haptic perception modalities (e.g., pressure, acceleration, velocity, position, temperature, etc.). The perception modality is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.perception object.perception_modality is a string which may hold values among "Pressure", "Acceleration", "Velocity", "Position", "Temperature", "Vibrotactile", "Water", "Wind", "Force", "Electrotactile", "Vibrotactile Texture", "Stiffness", "Friction", "Humidity", "User-defined Temporal", "User-defined Spatial", "Other".</t>
        <t>bodypartmask:</t>
        <t>This parameter is an integer which indicates, using a bitmask, the location of the devices or actuators on the body. The body part mask is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.body_part_mask is a 32-bit integer which may hold a bit mask using bit positions defined in table 7 of <xref target="ISO.IEC.23090-31"/>.</t>
        <t>maxfreq:</t>
        <t>This parameter is an integer which indicates the maximum frequency of haptic data for vibrotactile perceptions (Hz). Maximum frequency is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.maximum_frequency.</t>
        <t>minfreq:</t>
        <t>This parameter is an integer which indicates the minimum frequency of haptic data for vibrotactile perceptions (Hz). Minimum frequency is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.minimum_frequency.</t>
        <t>dvctypes:</t>
        <t>This parameter indicates, using a comma-separated list, the types of actuators. The device type is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.type is a string which may hold values among "LRA", "VCA", "ERM", "Piezo" or "Unknown".</t>
        <t>silencesupp:</t>
        <t>This parameter is an integer which indicates whether silence suppression should be used (1) or not (0). When silencesupp is not present, the default value 0 SHOULD be inferred.</t>
      </section>
      <section anchor="sdp-registration">
        <name>SDP Parameter Registration</name>
        <t>This memo registers a 'haptics' token in the media sub-registry of the Session Description Protocols (SDP) Parameters registry. This registration contains the required information elements outlined in the SDP registration procedure defined in section 8.2 of <xref target="RFC8866"/>.</t>
        <t>(1)  Contact Information:</t>
        <artwork><![CDATA[
       Name: Hyunsik Yang
       Email: hyunsik.yang@interdigital.com
]]></artwork>
        <t>(2)  Name being registered (as it will appear in SDP): haptics</t>
        <t>(3)  Long-form name in English: haptics</t>
        <t>(4)  Type of name ('media', 'proto', 'fmt', 'bwtype', 'nettype', or
        'addrtype'): media</t>
        <t>(5)  Purpose of the registered name:</t>
        <artwork><![CDATA[
       The 'haptics' media type for the Session Description Protocol
       is used to describe a media stream whose content can be
       rendered as touch-related sensations.
       The media subtype further describes the specific
       format of the haptics stream.  The 'haptics' media type for
       SDP is used to establish haptics media streams.
]]></artwork>
        <t>(6)  Specification for the registered name: RFC XXXX</t>
        <t>RFC Editor Note: Replace RFC XXXX with the published RFC number.</t>
      </section>
    </section>
    <section anchor="sdp-considerations">
      <name>SDP Considerations</name>
      <t>The mapping of above defined payload format media type to the corresponding fields in the Session Description Protocol (SDP) is done according to <xref target="RFC8866"/>.</t>
      <t>The media name in the "m=" line of SDP MUST be haptics.</t>
      <t>The encoding name in the "a=rtpmap" line of SDP MUST be hmpg</t>
      <t>The clock rate in the "a=rtpmap" line may be any sampling rate, typically 8000.</t>
      <t>The optional parameters (defined in <xref target="optional-param"/>), when present, MUST be included in the "a=fmtp" line of SDP. This is expressed as a media type string, in the form of a semicolon-separated list of parameter=value pairs. Parameter values, including string values, MUST be written without quotation marks ("") in SDP. Parameter values which are strings are not case sensitive and SHOULD be written in lowercase.</t>
      <t>An example of media representation corresponding to the hmpg RTP payload in SDP is as follows:</t>
      <artwork><![CDATA[
m=haptics 43291 UDP/TLS/RTP/SAVPF 115
a=rtpmap:115 hmpg/8000
a=fmtp:115 profile=main;lvl=1;ver=2025
]]></artwork>
      <section anchor="sdp-cons">
        <name>SDP Offer/Answer Considerations</name>
        <t>When using the offer/answer procedure described in <xref target="RFC3264"/> to negotiate the use of haptic, the following considerations apply:</t>
        <t>When used for a unidirectional stream, the SDP parameters represent the properties of the sender (on the sending side) and of the receiver (on the receiving side). When used for a sendrecv stream, the SDP parameters represent the properties of the receiver.</t>
        <t>The receiver properties expressed using the SDP parameters 'ver', 'profile' and 'lvl' correspond to implementation capabilities. The ver, profile, lvl parameters MUST be used symmetrically in SDP offer and answer. That is, their values in the answer MUST match those in the offer, either explicitly signaled or implicitly inferred. In the same session, ver, profile, and lvl MUST NOT be changed in subsequent offers or answers.</t>
        <t>The properties expressed using SDP parameters other than 'ver', 'profile' and 'lvl' are provided as recommendations for efficient data transmission and are not binding, meaning that a sender is encouraged but not required to conform to the parameters specified by the receiver. These properties MAY be set to different values in offers and answers. These properties MAY be updated in subsequent offers or answers.</t>
        <t>Any receiver compliant with <xref target="ISO.IEC.23090-31"/> MUST be capable of decoding any stream with a compatible version, profile, and level. A receiver supporting a more general profile will accept a stream corresponding to a same or less general profile (e.g., "main" is more general than "simple-parametric"). A receiver supporting a given level will accept a stream corresponding to a same or lower level. A receiver supporting a given version will accept a stream corresponding to the same version and MAY accept other versions. A receiver MAY ignore any part of a received stream, e.g., that it does not have support for rendering.</t>
        <t>The haptic signal can be sampled at different rates. The MPEG Haptics Coding standard does not mandate a specific frequency. A typical sample rate is 8000Hz.</t>
        <t>The parameter 'ver' indicates the version of the haptic standard specification. If it is not specified, the The parameter 'ver' indicates the version of the haptic standard specification. If it is not specified, the value "2025" indicating the MPEG Haptics Coding standard ISO/IEC 23090-31:2025 <xref target="ISO.IEC.23090-31"/>  SHOULD be inferred, although the sender and receiver MAY use a specific value based on an out-of-band agreement. The parameter 'profile' is used to restrict the number of tools used (e.g., the simple-parametric profile fits enable simpler implementations than the main profile). If it is not specified, the most general profile "main" SHOULD be inferred, although the sender and receiver MAY use a specific value based on an out-of-band agreement. The parameter 'lvl' is used to further characterize implementations within a given profile, e.g., according to the maximum supported number of channels, bands, and perceptions. If it is not specified, the most general level "2" SHOULD be inferred, although the sender and receiver MAY use a specific version based on an out-of-band agreement.</t>
        <t>Other parameters can be used to indicate bitstream properties as well as receiver capabilities. The parameters 'maxlod', 'avtypes', 'bodypartmask', 'maxfreq', 'minfreq', 'dvctypes', and 'modalities' can be sent by a sender to reflect the characteristics of bitstreams and can be set by a receiver to reflect the nature and capabilities of local actuator devices, or a preferred set of bitstream properties. For example, different receivers MAY have different sets of local actuators, in which case these parameters can be used to select a stream adapted to the receiver. In some other cases, some receivers MAY indicate a preference for a set of bitstream properties such as perceptions, min/max frequency, or body-part-mask, which contribute the most to the user experience for a given application, in which case these parameters can be used to select a stream which include and possibly prioritizes those properties. For example, if the haptic stream server provides more information than the body mask specified by the receiver, the additional information can be either integrated into a single effect or ignored by the receiver.</t>
        <t>The parameter 'silencesupp' can be used to indicate sender and receiver capabilities or preferences. This parameter indicates whether silence suppression should be used, as described in <xref target="mihs-trans"/>. If it is not specified, the value "0", indicating no silence suppression, SHOULD be inferred, although the sender and receiver MAY use silence suppression based on an out-of-band agreement.</t>
      </section>
      <section anchor="declarative-sdp-considerations">
        <name>Declarative SDP Considerations</name>
        <t>When haptic content over RTP is offered with SDP in a declarative style, the parameters capable of indicating both bitstream properties as well as receiver capabilities are used to indicate only bitstream properties.  For example, in this case, the parameters maxlod, bodypartmask, maxfreq, minfreq, dvctypes, and modalities declare the values used by the bitstream, not the capabilities for receiving bitstreams. A receiver of the SDP is required to support all parameters and values of the parameters provided; otherwise, the receiver MUST reject or not participate in the session.  It falls on the creator of the session to use values that are expected to be supported by the receiving application.</t>
      </section>
    </section>
    <section anchor="congestion-control-considerations">
      <name>Congestion Control Considerations</name>
      <t>The general congestion control considerations for transporting RTP data apply to HMPG haptics over RTP as well <xref target="RFC3550"/>.</t>
      <t>It is possible to adapt network bandwidth usage by adjusting either the encoder bit rate or by adjusting the stream content (e.g., level of detail, body parts, actuator frequency range, target device types, modalities). The considerations in this section are applicable to best-effort networks and controlled environments.</t>
      <t>In case of congestion, a receiver or intermediate node MAY prioritize independent packets over dependent ones, since the non-reception of an independent MIHS unit can prevent the decoding of multiple subsequent dependent MIHS units. In case of congestion, a receiver or intermediate node MAY prioritize initialization MIHS units over other units, since initialization MIHS units contain metadata used to re-initialize the decoder, and MAY drop silent MIHS units before other types of MIHS units, since a receiver MAY interpret a missing MIHS unit as a silence. It is also possible, using the layer field of the RTP payload header, to allocate MIHS units to different layers based on their content, to prioritize haptic data contributing the most to the user experience. In case of congestion, intermediate nodes and receivers SHOULD use the MIHS layer value to determine the relative importance of haptic RTP packets.</t>
      <t>Receivers should monitor timestamps and treat gaps as loss of the corresponding MIHS units. MIHS units, as defined in <xref target="ISO.IEC.23090-31"/>, should be checked for structural integrity according to their type. When CRC16 or CRC32 information is present in MIHS units, receivers must validate data integrity, and units failing CRC checks should be treated as lost. Receivers should further monitor indicators of service degradation such as unexpected silent gaps, repeated decoder reinitializations, or decoding failures. Receivers should report packet loss to the sender using RTCP Receiver Reports <xref target="RFC3550"/> and, when available, may report detailed loss and jitter metrics using mechanisms described in <xref target="RFC4585"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This RTP payload format is subject to security threats commonly associated with RTP payload formats, as well as threats specific to the interaction of haptic devices with the physical world, and threats associated with the use of compression by the codec.
Security consideration for threats commonly associated with RTP payload formats are outlined in <xref target="RFC3550"/>, as well as in RTP profiles such as RTP/AVP <xref target="RFC3551"/>), RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP <xref target="RFC3711"/>, or RTP/SAVPF <xref target="RFC5124"/>.</t>
      <t>Haptic sensors and actuators operate within the physical environment. This introduces the potential for information leakage through sensors, or damage to actuators due to data tampering. Additionally, misusing the functionalities of actuators (such as force, position, temperature, vibration, electro-tactile, etc.) may pose a risk of harm to the user, for example by setting keyframe parameters (e.g., amplitude, position, frequency) or channel gain to a value that surpasses a permissible range. While individual devices can implement security measures to reduce or eliminate those risks on a per-device basis, in some cases harm can be inflicted by setting values which are permissible for the individual device. For example, causing contact with the physical environment or triggering unexpected force feedback can potentially harm the user. Each haptic system should therefore implement system-dependent security measures, which are more error prone. To limit the risk that attackers exploit weaknesses in haptic systems, it is important that haptic transmission should be protected against malicious traffic injection or tampering.</t>
      <t>However, as "Securing the RTP Framework: Why RTP Does Not Mandate a Single Media Security Solution" <xref target="RFC7202"/> discusses, it is not an RTP payload format's responsibility to discuss or mandate what solutions are used to meet the basic security goals like confidentiality, integrity, and source authenticity for RTP in general. The responsibility for implementing security mechanisms lies with the application developer. They can find guidance on available security mechanisms and important considerations in "Options for Securing RTP Sessions" <xref target="RFC7201"/>, although <xref target="RFC7201"/> is now considered dated and several mechanisms described therein have since evolved.</t>
      <t>Applications SHOULD use appropriate and current strong security mechanisms. For modern best practices, applications can consider the following options:</t>
      <ul spacing="normal">
        <li>
          <t>(D)TLS-based protection:
For guidance on using TLS 1.3 and DTLS, applications should refer to BCP 195, 
including <xref target="RFC9325"/>, which provides up-to-date recommendations.</t>
        </li>
        <li>
          <t>IPsec-based protection:
Relevant and current protocol specifications include <xref target="RFC4303"/> (ESP) and <xref target="RFC7296"/> (IKEv2).</t>
        </li>
      </ul>
      <t>This document does not mandate a specific security mechanism. Instead, applications are responsible for selecting mechanisms that follow current best practices for confidentiality, integrity, and source authentication, and that reflect the evolving security landscape beyond what is covered in <xref target="RFC7201"/>.</t>
      <t>The haptic codec used with this payload format uses a compression algorithm (see sections 8.2.8.5 and 8.3.3.2 in <xref target="ISO.IEC.23090-31"/>). An attacker may inject pathological datagrams into the stream which are complex to decode and cause the receiver to be overloaded, similarly to <xref target="RFC3551"/>.</t>
      <t>End-to-end security with authentication, integrity, or confidentiality protection will prevent a Media-Aware Network Element (MANE) from performing media-aware operations other than discarding complete packets. In the case of confidentiality protection, it will even be prevented from discarding packets in a media-aware way. To be allowed to perform such operations, a MANE is required to be a trusted entity that is included in the security context establishment.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="media-type-registration-update">
        <name>Media Type Registration Update</name>
        <t>This memo updates the 'hmpg' haptic subtype defined in <xref target="RFC9695"/> for use with the MPEG-I haptics streamable binary coding format described in ISO/IEC 23090-31: Haptics coding <xref target="ISO.IEC.23090-31"/>. This memo especially defines optional parameters for this type in <xref target="optional-param"/>. The original subtype registration for haptics/hmpg, registered with IANA in <xref target="RFC9695"/>, did not include any required or optional parameters. This document introduces optional parameters to enable extended functionality while maintaining backward compatibility.</t>
        <t>A mapping of the parameters into the Session Description Protocol (SDP) <xref target="RFC8866"/> is also provided for applications that use SDP. Equivalent parameters could be defined elsewhere for use with control protocols that do not use SDP.
The receiver MUST ignore any parameter unspecified in this memo.</t>
        <t>The following entries identify the media type being updated:</t>
        <t>Type name: haptics</t>
        <t>Subtype name: hmpg</t>
        <t>The following entries are replaced by this memo:</t>
        <t>Optional parameters: see section 6.2 of RFC XXX (note to RFC editor: replace with this RFC's number).</t>
        <t>Person &amp; email address to contact for further information: Yeshwant Muthusamy (yeshwant@yeshvik.com) and Hyunsik Yang (hyunsik.yang@interdigital.com)</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Philippe Guillotel, Quentin Galvane, Jonathan Lennox, Marius Kleidl and Stephan Wenger for the comments and discussions about this draft.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ISO.IEC.23090-31" target="https://www.iso.org/standard/86122.html">
          <front>
            <title>Information technology - Coded representation of immersive media</title>
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="ISO/IEC" value="23090-31:2025"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC9695">
          <front>
            <title>The 'haptics' Top-Level Media Type</title>
            <author fullname="Y. K. Muthusamy" initials="Y. K." surname="Muthusamy"/>
            <author fullname="C. Ullrich" initials="C." surname="Ullrich"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>This memo registers and documents the 'haptics' top-level media type, under which subtypes for representation formats for haptics may be registered. This document also serves as a registration for a set of subtypes, which are representative of some existing subtypes already in use.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9695"/>
          <seriesInfo name="DOI" value="10.17487/RFC9695"/>
        </reference>
        <reference anchor="RFC8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </reference>
        <reference anchor="RFC3264">
          <front>
            <title>An Offer/Answer Model with Session Description Protocol (SDP)</title>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <date month="June" year="2002"/>
            <abstract>
              <t>This document defines a mechanism by which two entities can make use of the Session Description Protocol (SDP) to arrive at a common view of a multimedia session between them. In the model, one participant offers the other a description of the desired session from their perspective, and the other participant answers with the desired session from their perspective. This offer/answer model is most useful in unicast sessions where information from both participants is needed for the complete view of the session. The offer/answer model is used by protocols like the Session Initiation Protocol (SIP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3264"/>
          <seriesInfo name="DOI" value="10.17487/RFC3264"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2736">
          <front>
            <title>Guidelines for Writers of RTP Payload Format Specifications</title>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="December" year="1999"/>
            <abstract>
              <t>This document provides general guidelines aimed at assisting the authors of RTP Payload Format specifications in deciding on good formats. 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="36"/>
          <seriesInfo name="RFC" value="2736"/>
          <seriesInfo name="DOI" value="10.17487/RFC2736"/>
        </reference>
        <reference anchor="RFC8088">
          <front>
            <title>How to Write an RTP Payload Format</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>This document contains information on how best to write an RTP payload format specification. It provides reading tips, design practices, and practical tips on how to produce an RTP payload format specification quickly and with good results. A template is also included with instructions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8088"/>
          <seriesInfo name="DOI" value="10.17487/RFC8088"/>
        </reference>
        <reference anchor="RFC7201">
          <front>
            <title>Options for Securing RTP Sessions</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>The Real-time Transport Protocol (RTP) is used in a large number of different application domains and environments. This heterogeneity implies that different security mechanisms are needed to provide services such as confidentiality, integrity, and source authentication of RTP and RTP Control Protocol (RTCP) packets suitable for the various environments. The range of solutions makes it difficult for RTP-based application developers to pick the most suitable mechanism. This document provides an overview of a number of security solutions for RTP and gives guidance for developers on how to choose the appropriate security mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7201"/>
          <seriesInfo name="DOI" value="10.17487/RFC7201"/>
        </reference>
        <reference anchor="RFC7202">
          <front>
            <title>Securing the RTP Framework: Why RTP Does Not Mandate a Single Media Security Solution</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>This memo discusses the problem of securing real-time multimedia sessions. It also explains why the Real-time Transport Protocol (RTP) and the associated RTP Control Protocol (RTCP) do not mandate a single media security mechanism. This is relevant for designers and reviewers of future RTP extensions to ensure that appropriate security mechanisms are mandated and that any such mechanisms are specified in a manner that conforms with the RTP architecture.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7202"/>
          <seriesInfo name="DOI" value="10.17487/RFC7202"/>
        </reference>
        <reference anchor="RFC7296">
          <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="RFC4303">
          <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="RFC9325">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are used to protect data exchanged over a wide range of application protocols and can also form the basis for secure transport protocols. Over the years, the industry has witnessed several serious attacks on TLS and DTLS, including attacks on the most commonly used cipher suites and their modes of operation. This document provides the latest recommendations for ensuring the security of deployed services that use TLS and DTLS. These recommendations are applicable to the majority of use cases.</t>
              <t>RFC 7525, an earlier version of the TLS recommendations, was published when the industry was transitioning to TLS 1.2. Years later, this transition is largely complete, and TLS 1.3 is widely available. This document updates the guidance given the new environment and obsoletes RFC 7525. In addition, this document updates RFCs 5288 and 6066 in view of recent attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="195"/>
          <seriesInfo name="RFC" value="9325"/>
          <seriesInfo name="DOI" value="10.17487/RFC9325"/>
        </reference>
        <reference anchor="RFC5124">
          <front>
            <title>Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <date month="February" year="2008"/>
            <abstract>
              <t>An RTP profile (SAVP) for secure real-time communications and another profile (AVPF) to provide timely feedback from the receivers to a sender are defined in RFC 3711 and RFC 4585, respectively. This memo specifies the combination of both profiles to enable secure RTP communications with feedback. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5124"/>
          <seriesInfo name="DOI" value="10.17487/RFC5124"/>
        </reference>
        <reference anchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This document describes a profile called "RTP/AVP" for the use of the real-time transport protocol (RTP), version 2, and the associated control protocol, RTCP, within audio and video multiparticipant conferences with minimal control. It provides interpretations of generic fields within the RTP specification suitable for audio and video conferences. In particular, this document defines a set of default mappings from payload type numbers to encodings. This document also describes how audio and video data may be carried within RTP. It defines a set of standard encodings and their names when used within RTP. The descriptions provide pointers to reference implementations and the detailed standards. This document is meant as an aid for implementors of audio, video and other real-time multimedia applications. This memorandum obsoletes RFC 1890. It is mostly backwards-compatible except for functions removed because two interoperable implementations were not found. The additions to RFC 1890 codify existing practice in the use of payload formats under this profile and include new payload formats defined since RFC 1890 was published. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="65"/>
          <seriesInfo name="RFC" value="3551"/>
          <seriesInfo name="DOI" value="10.17487/RFC3551"/>
        </reference>
        <reference anchor="RFC4585">
          <front>
            <title>Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <author fullname="N. Sato" initials="N." surname="Sato"/>
            <author fullname="C. Burmeister" initials="C." surname="Burmeister"/>
            <author fullname="J. Rey" initials="J." surname="Rey"/>
            <date month="July" year="2006"/>
            <abstract>
              <t>Real-time media streams that use RTP are, to some degree, resilient against packet losses. Receivers may use the base mechanisms of the Real-time Transport Control Protocol (RTCP) to report packet reception statistics and thus allow a sender to adapt its transmission behavior in the mid-term. This is the sole means for feedback and feedback-based error repair (besides a few codec-specific mechanisms). This document defines an extension to the Audio-visual Profile (AVP) that enables receivers to provide, statistically, more immediate feedback to the senders and thus allows for short-term adaptation and efficient feedback-based repair mechanisms to be implemented. This early feedback profile (AVPF) maintains the AVP bandwidth constraints for RTCP and preserves scalability to large groups. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4585"/>
          <seriesInfo name="DOI" value="10.17487/RFC4585"/>
        </reference>
        <reference anchor="RFC5104">
          <front>
            <title>Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)</title>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <author fullname="U. Chandra" initials="U." surname="Chandra"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="B. Burman" initials="B." surname="Burman"/>
            <date month="February" year="2008"/>
            <abstract>
              <t>This document specifies a few extensions to the messages defined in the Audio-Visual Profile with Feedback (AVPF). They are helpful primarily in conversational multimedia scenarios where centralized multipoint functionalities are in use. However, some are also usable in smaller multicast environments and point-to-point calls.</t>
              <t>The extensions discussed are messages related to the ITU-T Rec. H.271 Video Back Channel, Full Intra Request, Temporary Maximum Media Stream Bit Rate, and Temporal-Spatial Trade-off. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5104"/>
          <seriesInfo name="DOI" value="10.17487/RFC5104"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19aW8bSZLodwP+DwkZWJPbRVqHTw0MrMaSx9qxbK0l90xv
o9Eokkmy2sUqTmVRMtv2++0vrryqijradmPx3mrQY0qsyoyMjIw7IgeDwd07
dVbnel9tvTs/VafpOi/TiXpZVou0VtOyUq/SZZ2NzdbdO+loVOmLfQUPDuTB
AX97986kHBfpAoaZVOm0HmS6ng7Si3pcVnpQ1cvBnEcZ7OzBs2kND346PDg/
+nL3jqkrnS721fHR+cu7d8bw3ays1vvK1JO7d7Jlta/qamXq3e3tZ9u7AAQ8
va/Oq7Qwy7Kq7965LKsPs6pcLfeVTHj3zmqJc5h99ezxs0c4RVpMfk3zsoB5
19rcvbPM9tXPdTlOlIFBKj018Gm94A+wlkW6XGbF7Je7d2DGVT0vq/27d5Qa
4P8plRUw9KuzofopLWb8J178q/WqMNmH4O9lNYOlFbWuDrNZVqc5/1kv0izf
V3N+friG5/8jw6cm/NRwXC74yXG5KmrEx/uzgyYI/xyqiYa9Wocw/DO9yHQV
fXE1EB/pheFET8v1dUC8SIt0kiJWCqKQ7EITYo7P3g6Pj14Md/dglwZ7O/v8
niWt42LKj5eFqvV4XpR5OVurgXpRTvREVXpZaaOLmp8opypbLHRlYHS10JMs
3eLhgp1wy9qCqR/A1PII09bu9u4j/t3oKtMmg/nda/ICPGWB9Y/XaTXTNWxM
XS/N/oMHl5eXw8yUQ5jqAVFRWk0ePH28s7s7nNeLHBGh1LuXL3Z3dp7ty+en
O08e2s97jx5t289Ii+6Zp48fu2d2H+Pz+L/M4knQiiM/2XNPPt1++tR+frK7
vRN83vWfn7nnH+5t77nZ93bd7I92dj2ET3Z2Amjd54ePngbPbzOEg8FApSM4
sem4xt/P55mBHVqUyiz1OJsCqlVaIINQS+EkU89J6rlWJ6dHfxscK2YHuFvp
UB3YX2mvFTMEBSMD/S1LAwQCFHFy/OpMrYqsNkD743w1geOpUv5zT0ZlZqTO
aIA+Pa3mOp3AcYCtU7/rqgSiUQvgEfziMh1/0LUZqnMALYRa3hLg0zwvLw2t
gd/IfneUmnrIADC/enzMDZcadanzHP+dVulsEZJ6PEBdqsUqr7NlroOBBMKy
goNZpLkyq1G9Xmo4OLMMd4PGQvCEzT6YL5azRL7WFWDwMqvn6vjgzQECKcQI
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

-->

</rfc>
