One document matched: draft-williams-avtext-avbsync-01.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="no"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-williams-avtext-avbsync-01"
     ipr="trust200902">
  <front>
    <title abbrev="AVB/RTP Synchronisation">IEEE 1588/802.1AS Synchronisation
    for RTP Streams</title>

    <author fullname="Aidan Williams" initials="A.M." surname="Williams">
      <organization>Audinate</organization>

      <address>
        <postal>
          <street>Level 1, 458 Wattle St</street>

          <city>Ultimo</city>

          <code>2007</code>

          <region>NSW</region>

          <country>Australia</country>
        </postal>

        <phone>+61 2 8090 1000</phone>

        <facsimile>+61 2 8090 1001</facsimile>

        <email>aidan.williams@audinate.com</email>
      </address>
    </author>

    <date day="11" month="March" year="2011" />

    <area>Real-time Applications and Infrastructure</area>

    <workgroup>Audio/Video Transport Extensions</workgroup>

    <keyword>Sample</keyword>

    <keyword>Draft</keyword>

    <abstract>
      <t>Specification of an RTP header extension for carrying in-band
      synchronization metadata provided by the IEEE1588/802.1AS Precision Time
      Protocols.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>Synchronisation between RTP flows and between devices rendering RTP
      flows is currently facilitated by means of NTP format timestamps taken
      with respect to a shared reference clock. In many applications (e.g.
      professional, commercial and automotive AV), the NTP clock
      synchronisation protocol does not meet the necessary time alignment and
      synchronisation speed requirements.</t>

      <t>Like NTP, the IEEE1588 family of clock synchronisation protocols
      provide a shared reference clock in an network - typically a LAN.
      IEEE1588 provides sub-microsecond synchronisation between devices on a
      LAN and typically locks within seconds at startup rather than minutes.
      With support from Ethernet switches, IEEE1588 protocols can achieve
      nanosecond timing accuracy in LANs. Network interface chips and cards
      supporting hardware time-stamping of timing critical protocol messages
      are also available.</t>

      <t>When using IEEE1588 clock synchronisation, networked AV systems can
      achieve sub 1 microsecond time alignment accuracy when rendering AV
      signals and can support latencies less than 1ms through a gigabit
      LAN.</t>

      <t>Three flavours of IEEE1588 are in use today:</t>

      <t><list style="symbols">
          <t><xref target="IEEE1588-2002">IEEE 1588-2002</xref>: the original
          "Standard for a Precision Clock Synchronization Protocol for
          Networked Measurement and Control Systems". This is often called
          IEEE1588v1 or PTPv1.</t>

          <t><xref target="IEEE1588-2008">IEEE 1588-2008</xref>: the second
          version of the "Standard for a Precision Clock Synchronization
          Protocol for Networked Measurement and Control Systems". This is a
          revised version of the original IEEE1588-2002 standard and is often
          called IEEE1588v2 or PTPv2.</t>

          <t><xref target="IEEE802.1AS-2011">IEEE 802.1AS</xref>: "Timing and
          Synchronization for Time Sensitive Applications in Bridged Local
          Area Networks". This is a Layer-2 only profile of IEEE 1588-2008 for
          use in Audio/Video Bridged LANs.</t>
        </list>By using an IEEE 1588 derived reference clock, synchronisation
      of RTP streams and devices in LANs can be considerably improved.</t>
    </section>

    <section anchor="timestamp_formats" title="Timestamp formats">
      <t>A global IEEE 1588/802.1AS timestamp is 80 bits in total, divided
      into two parts:</t>

      <t><list style="empty">
          <t>AS_sec: 48 bits seconds since epoch</t>

          <t>AS_nsec: 32 bits nanoseconds</t>
        </list>A shorter 32 bit timestamp is defined for use in streaming
      media protocols in the following way:<list style="empty">
          <t>as_timestamp = (AS_sec * 10^9 + AS_nsec) modulo 2^32</t>
        </list></t>

      <t>The shorter as_timestamp field covers just over 4 seconds of
      time.</t>
    </section>

    <section title="Header Extension">
      <t><xref target="fig_hdrext"></xref> shows the fields of the AVB sync
      header extension. It uses the standard RTP header extension mechanism
      defined in <xref target="RFC5285">RFC 5285</xref>.</t>

      <figure align="center" anchor="fig_hdrext"
              title="IEEE 1588/802.1AS Synchronisation Header Extension">
        <preamble></preamble>

        <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|1|  CC   |M|     PT      |       sequence number         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+R
|                           timestamp                           |T
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+P
|           synchronisation source (SSRC) identifier            |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|       0xBE    |    0xDE       |           length=2            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+E
|  ID=A | L=6   | subtype |             reserved                |x
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+t
|                         as_timestamp                          |n
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|                         payload data                          |
|                             ....                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>

      <t>The fields are defined as follows:</t>

      <t><list style="empty">
          <t>subtype: RTCP AVB packet subtype field, see <xref
          target="IEEE1733_RTCP"></xref>.</t>

          <t>as_timestamp: a 32 bit IEEE 1588/802.1AS timestamp as defined in
          <xref target="timestamp_formats"></xref>.</t>

          <t>reserved: as this specification evolves, additional fields are
          expected to be included in this header.</t>
        </list>The as_timestamp MUST correspond to the same instant as the RTP
      timestamp in the packet's header, and MUST be derived from the same
      clock used to generate the as_timestamps in the RTCP AVB packets.
      Provided that it has knowledge of the SSRC to CNAME mapping, either from
      prior receipt of an RTCP CNAME packet or via out of band signalling
      [RFC5576], the receiver can use the information provided as input to the
      synchronization algorithm, in exactly the same way as if an additional
      RTCP AVB packet had been received for the flow.</t>
    </section>

    <section anchor="IEEE1733_RTCP" title="IEEE 1733 / RTCP AVB Packet">
      <t><xref target="IEEE1733">IEEE 1733</xref> defines the "AVB RTCP
      packet" type reproduced in <xref target="fig_rtcp_avb"></xref>. RTCP AVB
      packets contain a mapping between RTP timestamp and an 802.1AS timestamp
      as well as additional clock and QoS information.</t>

      <t><figure align="center" anchor="fig_rtcp_avb"
          title="IEEE 1733/RTCP AVB packet format">
          <preamble></preamble>

          <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|subtype=0|    PT=208     |           length=9            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           SSRC/CSRC                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          name (ASCII)                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+R
|      gmTimeBaseIndicator      |                               |T
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +C
|                                                               |P
+                      gmIdentity (80 bits)                     + 
|                                                               |A
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+V
|                                                               |B
+                       stream_id (64 bits)                     +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          as_timestamp                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         rtp_timestamp                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure></t>

      <t>A brief description of the major fields follows:</t>

      <t><list style="hanging">
          <t hangText="gmIdentity">an 80 bit field uniquely identifying the
          current 802.1AS grand master clock used by the source to generate
          as_timestamps for this flow</t>

          <t hangText="stream_id">a 64 bit number identifying the <xref
          target="IEEE802.1Qat-2010">802.1Qat</xref> stream associated with
          this RTP flow</t>

          <t hangText="as_timestamp">the <xref target="timestamp_formats">32
          bit 802.1AS timestamp</xref> associated with the RTP timestamp
          carried in this packet</t>

          <t hangText="rtp_timestamp">the RTP timestamp of a media packet</t>
        </list>Please consult the <xref target="IEEE1733">IEEE 1733
      specification</xref> for more details.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>TBD: A URN will be required to signal the presence of this header
      extension, such as:</t>

      <t><list style="empty">
          <t>urn:ietf:params:rtp-hdrext:avb-sync</t>
        </list></t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t></t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.5285"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.IEEE.802.1Qat-2010"?>

      <?rfc include='reference.IEEE.802.1AS-2011'?>

      <reference anchor="IEEE1588-2002"
                 target="http://standards.ieee.org/findstds/standard/1588-2002.html">
        <front>
          <title>IEEE Standard for a Precision Clock Synchronization Protocol
          for Networked Measurement and Control Systems</title>

          <author>
            <organization>Institute of Electrical and Electronics
            Engineers</organization>
          </author>

          <date year="2002" />
        </front>

        <seriesInfo name="" value="IEEE Std 1588-2002" />
      </reference>

      <reference anchor="IEEE1588-2008"
                 target="http://standards.ieee.org/findstds/standard/1588-2008.html">
        <front>
          <title>IEEE Standard for a Precision Clock Synchronization Protocol
          for Networked Measurement and Control Systems</title>

          <author>
            <organization>Institute of Electrical and Electronics
            Engineers</organization>
          </author>

          <date year="2008" />
        </front>

        <seriesInfo name="" value="IEEE Std 1588-2008" />
      </reference>

      <reference anchor="IEEE1733"
                 target="http://grouper.ieee.org/groups/1733/">
        <front>
          <title>IEEE P1733/D7.0 Draft Standard for Layer 3 Transport Protocol
          for Time Sensitive Applications in Local Area Networks</title>

          <author>
            <organization>Institute of Electrical and Electronics
            Engineers</organization>
          </author>

          <date month="February" year="2011" />
        </front>

        <seriesInfo name="" value="IEEE Draft Std 1733/D7.0" />
      </reference>
    </references>

    <section title="An Appendix">
      <t></t>
    </section>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 08:53:13