<?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.6 (Ruby 3.0.2) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-hsyang-avtcore-rtp-haptics-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="RTP-Payload-Haptic">RTP Payload for Haptics</title>
    <seriesInfo name="Internet-Draft" value="draft-hsyang-avtcore-rtp-haptics-02"/>
    <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 57?>

<t>This memo describes 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.</t>
    </abstract>
  </front>
  <middle>
    <?line 61?>

<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 is registering haptics as a primary media type akin to audio and video <xref target="I-D.ietf-mediaman-haptics"/>.</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. It defines the "MIHS unit" as a unit of packetization suitable for streaming, and similar in essence to the NAL unit defined in some video specifications. This document describes how haptic data (MIHS units) can be transmitted using the RTP protocol. This document followed recommendations in <xref target="RFC8088"/> and <xref target="RFC2736"/> for RTP payload format writers.</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-dsecription"/> 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="I-D.ietf-mediaman-haptics"/> 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-dsecription">
      <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 kinaesthetic 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 human-readable 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 MPEG-I Haptic Stream (MIHS) format and is a base for the RTP payload format described in this document.</t>
      </section>
      <section anchor="MIHS-format">
        <name>MPEG-I Haptic Stream (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 level 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>
          <artwork><![CDATA[
+--------+ +-------+ +------------+ +-------------+ +-----------+
|Initial*| |Spatial| |  Temporal  | |Temporal Unit| |Silent Unit|
| Unit   |-| Unit  |-|Unit(indep.)|-| (dependent) |-| (indep.)  |
+--------+ +-------+ +------------+ +-------------+ +-----------+
*Initialization 
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="payload-format-for-haptics">
      <name>Payload format for haptics</name>
      <section anchor="rtp-header-usage">
        <name>RTP header Usage</name>
        <t>The RTP header is defined in <xref target="RFC3550"/> and represented in <xref target="_figure-rtpheader"/>. Some of the header field values are interpreted as follows.</t>
        <figure anchor="_figure-rtpheader">
          <name>RTP header for Haptic.</name>
          <artwork><![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>
        </figure>
        <t>Payload type (PT): 7 bits. The assignment of a payload type MUST be performed either through the profile used or in a dynamic way.</t>
        <t>Time Stamp (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>
        <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>
      </section>
      <section anchor="payload-header">
        <name>Payload Header</name>
        <t>The RTP Payload Header follows the RTP header. <xref target="_figure-payloadheader"/> describes RTP Payload Header.</t>
        <figure anchor="_figure-payloadheader">
          <name>RTP payload header for Haptic.</name>
          <artwork><![CDATA[
+---------------+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|D| UT  |   L   |
+-+-----+-------+
]]></artwork>
        </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 is not specified and left for the application to assign.</t>
      </section>
      <section anchor="payload-structures">
        <name>Payload Structures</name>
        <t>Two different types of RTP packet payload structures are specified. The single unit payload structure contains a single MIHS unit. The fragmented unit payload structure contains a subset of a MIHS unit. The unit type (UT) field of the RTP payload header <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>
        <t>Editor's Note:  consider if it would be useful to add the ability to aggregate multiple MIHS units in a single RTP payload - for instance, to aggregate multiple MIHS units with different layer values into a single RTP payload .</t>
        <figure anchor="_figure-transmission-type">
          <name>Payload structure type for haptic</name>
          <artwork><![CDATA[
Unit     Payload   Name
Type     Structure
----------------------------------------
0        N/A       Reserved
1        Single    Initialization MIHS Unit
2        Single    Temporal MIHS Unit
3        Single    Spatial MIHS Unit
4        Single    Silent MIHS Unit
7        Frag      Fragmented Packet
]]></artwork>
        </figure>
        <t>The payload structures are represented in <xref target="_figure-transmission-type"/>. The single unit payload structure is specified in <xref target="single"/>. The fragmented unit payload structure is specified in <xref target="fragmented"/>.</t>
        <figure anchor="_figure-transmission-style">
          <name>RTP Transmission mode</name>
          <artwork><![CDATA[
                         +-------------------+
                         |     RTP Header    |
+-------------------+    +-------------------+
|     RTP Header    |    | RTP payload Header|
+-------------------+    |   (UT = Frag)     |
| RTP payload Header|    +-------------------+
+-------------------+    |     FU Header     |
|    RTP payload    |    +-------------------+
| (Single MIHS unit)|    |    RTP Payload    |
+-------------------+    +-------------------+
 (a) single unit RTP     (b) fragmented unit RTP
]]></artwork>
        </figure>
        <section anchor="single">
          <name>Single Unit Payload Structure</name>
          <t>In a single unit payload structure, as described in <xref target="_figure-transmission-style"/>, 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>
            <artwork><![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>
          </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"/>.</t>
          <figure anchor="_figure-fragment-structure">
            <name>Fragmentation unit header</name>
            <artwork><![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>
          </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>
            <artwork><![CDATA[
+-------------------------------+
|0  | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+---+---+---+---+---+---+---+
|FUS|FUE|   RSV     |     UT    |
+---+---+-----------+-----------+
]]></artwork>
          </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>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.</t>
        </section>
      </section>
      <section anchor="mihs-trans">
        <name>MIHS Units Transmission 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 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.</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 detection of lost RTP packets by the decoder.</t>
      </section>
    </section>
    <section anchor="format-param">
      <name>Payload Format Parameters</name>
      <t>This memo updates the 'hmpg' haptic subtype defined in section 4.3.3 of <xref target="I-D.ietf-mediaman-haptics"/> for use with the MPEG-I haptics streamable binary coding format described in ISO/IEC DIS 23090-31: Haptics coding <xref target="ISO.IEC.23090-31"/>. This memo especially defines optional parameters for this type in <xref target="optional-param"/>.  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>
      <section anchor="media-type-registration-update">
        <name>Media Type Registration Update</name>
        <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 anchor="optional-param">
        <name>Optional Parameters Definition</name>
        <t><em>hmpg-ver</em>
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 release of the specifications, the value is "2023".</t>
        <t><em>hmpg-profile</em>
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 in the initial release of the specifications hold the values "simple-parametric" or "main".</t>
        <t><em>hmpg-lvl</em>
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 in the initial release of the specifications hold the value 1 or 2.</t>
        <t><em>hmpg-maxlod</em>
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 in the initial release of the specifications hold 0 or a positive integer.</t>
        <t><em>hmpg-avtypes</em> 
indicates, using a coma-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 an integer which may in the initial release of the specifications hold values among "Vibration", "Pressure", "Temperature", "Custom".</t>
        <t><em>hmpg-modalities</em>
indicates, using a coma-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 in the initial release of the specifications 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><em>hmpg-bodypartmask</em>
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 in the initial release of the specifications hold a bit mask using bit positions defined in table 7 of <xref target="ISO.IEC.23090-31"/>.</t>
        <t><em>hmpg-maxfreq</em>
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 is defined as an integer or floating-point number in the initial release of the specifications.</t>
        <t><em>hmpg-minfreq</em>
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 is defined as an integer or floating-point number in the initial release of the specifications.</t>
        <t><em>hmpg-dvctypes</em>
indicates, using a coma-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 in the initial release of the specifications hold values among "LRA", "VCA", "ERM", "Piezo" or "Unknown".</t>
        <t><em>hmpg-silencesupp</em>
indicates whether silence suppression should be used (1) or not (0). The default value shall be 1.</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.</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 hmpg-profile=1;hmpg-lvl=1;hmpg-ver=2023
]]></artwork>
      <section anchor="sdp-offeranswer-considerations">
        <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>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 'hmpg-ver' indicates the version of the haptic standard specification. If it is not specified, the initial version of the MPEG Haptic Coding specification SHOULD be assumed, although the sender and receiver MAY use a specific value based on an out-of-band agreement. The parameter 'hmpg-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 assumed, although the sender and receiver MAY use a specific value based on an out-of-band agreement. The parameter 'hmpg-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 assumed, 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 'hmpg-maxlod', 'hmpg-avtypes', 'hmpg-bodypartmask', 'hmpg-maxfreq', 'hmpg-minfreq', 'hmpg-dvctypes', and 'hmpg-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.</t>
        <t>The parameter 'hmpg-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"/>.</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 hmpg-maxlod, hmpg-bodypartmask, hmpg-maxfreq, hmpg-minfreq, hmpg-dvctypes, and hmpg-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-consideration">
      <name>Congestion control consideration</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 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).</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>
    </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 is 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 tempering.</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. This responsibility lays on anyone using RTP in an application. They can find guidance on available security mechanisms and important considerations in "Options for Securing RTP Sessions" <xref target="RFC7201"/>. Applications SHOULD use one or more appropriate strong security mechanisms.</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>
      <t>This memo updates the media type registration of haptics/hmpg with IANA, in <xref target="format-param"/>.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ISO.IEC.23090-31" target="https://isotc.iso.org/livelink/livelink/open/jtc1sc29wg7">
          <front>
            <title>Text of ISO/IEC FDIS 23090-31 MPEG Haptics Coding</title>
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2024"/>
          </front>
          <seriesInfo name="ISO/IEC" value="23090-31"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="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="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="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>
        <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="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="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="I-D.ietf-mediaman-haptics">
          <front>
            <title>The 'haptics' Top-level Media Type</title>
            <author fullname="Yeshwant K Muthusamy" initials="Y. K." surname="Muthusamy">
         </author>
            <author fullname="Chris Ullrich" initials="C." surname="Ullrich">
         </author>
            <date day="27" month="July" year="2023"/>
            <abstract>
              <t>   This memo serves to register and document 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="Internet-Draft" value="draft-ietf-mediaman-haptics-05"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
ysCRB5LoGmbjEEX9Fx2MPBAZfgAA

-->

</rfc>
