<?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-14" 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-14"/>
    <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>This document requests an SDP parameters registration for the haptic media type, as described in Section 6.2.</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
AX97986kHBfpAoaZVOm0HmS6ng7Si3pcVnpQ1cvBnEcZ7DyEZ9MaHvx0eHB+
9OXuHVNXOl3sq+Oj85d374zhu1lZrfeVqSd372TLal/V1crUu9vbz7Z3AQh4
el+dV2lhlmVV371zWVYfZlW5Wu4rmfDundUS5zD76tnjZ49wirSY/JrmZQHz
rrW5e2eZ7auf63KcKAODVHpq4NN6wR9gLYt0ucyK2S9378CMq3peVvt37yg1
wP9TKitg6FdnQ/VTWsz4T7z4V+tVYbIPwd/LagZLK2pdHWazrE5z/rNepFm+
r+b8/HANz/9Hhk9N+KnhuFzwk+NyVdSIj/dnB00Q/jlUEw17tQ5h+Gd6kekq
+uJqID7SC8OJnpbr64B4kRbpJEWsFEQh2YUmxByfvR0eH70Y7u7BLg32dvb5
PUtax8WUHy8LVevxvCjzcrZWA/WinOiJqvSy0kYXNT9RTlW2WOjKwOhqoSdZ
usXDBTvhlrUFUz+AqeURpq3d7d1H/LvRVaZNBvO71+QFeMoC6x+v02qma9iY
ul6a/QcPLi8vh5kphzDVA6KitJo8ePp4Z3d3OK8XOSJCqXcvX+zu7Dzbl89P
d548tJ/3Hj3atp+RFt0zTx8/ds/sPsbn8X+ZxZOgFUd+sueefLr99Kn9/GR3
eyf4vOs/P3PPP9zb3nOz7+262R/t7HoIn+zsBNC6zw8fPQ2e32YIB4OBSkdw
YtNxjb+fzzMDO7QolVnqcTYFVKu0QAahlsJJpp6T1HOtTk6P/jY4VswOcLfS
oTqwv9JeK2YICkYG+luWBggEKOLk+NWZWhVZbYD2x/lqAsdTpfznnozKzEid
0QB9elrNdTqB4wBbp37XVQlEoxbAI/jFZTr+oGszVOcAWgi1vCXAp3leXhpa
A7+R/e4oNfWQAWB+9fiYGy416lLnOf47rdLZIiT1eIC6VItVXmfLXAcDCYRl
BQezSHNlVqN6vdRwcGYZ7gaNheAJm30wXyxniXytK8DgZVbP1fHBmwMEUogR
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
guvhnf8L2awXc7CyAAA=

-->

</rfc>
