<?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="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-avtcore-clksrc-10" ipr="trust200902">
  <front>
    <title abbrev="RTP Clock Source Signalling">RTP Clock Source
    Signalling</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>

        <uri>http://www.audinate.com/</uri>
      </address>
    </author>

    <author fullname="Kevin Gross" initials="K." surname="Gross">
      <organization>AVA Networks</organization>

      <address>
        <postal>
          <street></street>

          <city>Boulder</city>

          <region>CO</region>

          <country>US</country>
        </postal>

        <email>kevin.gross@avanw.com</email>

        <uri>http://www.avanw.com/</uri>
      </address>
    </author>

    <author fullname="Ray van Brandenburg" initials="R."
            surname="van Brandenburg">
      <organization>TNO</organization>

      <address>
        <postal>
          <street>Brassersplein 2</street>

          <city>Delft</city>

          <code>2612CT</code>

          <country>the Netherlands</country>
        </postal>

        <phone>+31-88-866-7000</phone>

        <email>ray.vanbrandenburg@tno.nl</email>
      </address>
    </author>

    <author fullname="Hans Stokking" initials="H.M." surname="Stokking">
      <organization>TNO</organization>

      <address>
        <postal>
          <street>Brassersplein 2</street>

          <city>Delft</city>

          <code>2612CT</code>

          <country>the Netherlands</country>
        </postal>

        <email>hans.stokking@tno.nl</email>
      </address>
    </author>

    <date day="14" month="March" year="2014" />

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

    <workgroup>Audio/Video Transport Core Maintenance</workgroup>

    <keyword>Clock</keyword>

    <keyword>Source</keyword>

    <abstract>
      <t>NTP format timestamps are used by several RTP protocols for
      synchronisation and statistical measurements. This memo specifies SDP
      signalling identifying timestamp reference clock sources and SDP
      signalling identifying the media clock sources in a multimedia
      session.</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>RTP protocols use NTP format timestamps to facilitate multimedia
      session synchronisation and for providing estimates of round trip time
      (RTT) and other statistical parameters.</t>

      <t>Information about media clock timing exchanged in NTP format
      timestamps may come from a clock which is synchronised to a global time
      reference, but this cannot be assumed nor is there a standardised
      mechanism available to indicate that timestamps are derived from a
      common reference clock. Therefore, RTP implementations typically assume
      that NTP timestamps are taken using unsynchronised clocks and must
      compensate for absolute time differences and rate differences. Without a
      shared reference clock, RTP can time align flows from the same source at
      a given receiver using relative timing, however tight synchronisation
      between two or more different receivers (possibly with different network
      paths) or between two or more senders is not possible.</t>

      <t>High performance AV systems often use a reference media clock
      distributed to all devices in the system. The reference media clock is
      often distinct from the reference clock used to provide timestamps. A
      reference media clock may be provided along with an audio or video
      signal interface, or via a dedicated clock signal (e.g. <xref
      target="SMPTE-318-1999">genlock</xref> or <xref
      target="AES11-2009">audio word clock</xref>). If sending and receiving
      media clocks are known to be synchronised to a common reference clock,
      performance can improved by minimising buffering and avoiding rate
      conversion.</t>

      <t>This specification defines SDP signalling of timestamp reference
      clock sources and media reference clock sources.</t>
    </section>

    <section anchor="applications" title="Applications">
      <t>Timestamp reference clock source and media clock signalling benefit
      applications requiring synchronised media capture or playout and low
      latency operation.</t>

      <t>Examples include, but are not limited to:</t>

      <t><list style="hanging">
          <t hangText="Social TV">: <xref target="I-D.ietf-avtcore-idms">RTCP
          for inter-destination media synchronization</xref> defines social TV
          as the combination of media content consumption by two or more users
          at different devices and locations and real-time communication
          between those users. An example of Social TV, is where two or more
          users are watching the same television broadcast at different
          devices and/or locations, while communicating with each other using
          text, audio and/or video. A skew in the media playout of the two or
          more users can have adverse effects on their experience. A
          well-known use case here is one friend experiencing a goal in a
          football match well before or after other friends.</t>

          <t hangText="Video Walls">: A video wall consists of multiple
          computer monitors, video projectors, or television sets tiled
          together contiguously or overlapped in order to form one large
          screen. Each of the screens reproduces a portion of the larger
          picture. In some implementations, each screen or projector may be
          individually connected to the network and receive its portion of the
          overall image from a network-connected video server or video scaler.
          Screens are refreshed at 50 or 60 hertz or potentially faster. If
          the refresh is not synchronized, the effect of multiple screens
          acting as one is broken.</t>

          <t hangText="Networked Audio">: Networked loudspeakers, amplifiers
          and analogue I/O devices transmitting or receiving audio signals via
          RTP can be connected to various parts of a building or campus
          network. Such situations can for example be found in large
          conference rooms, legislative chambers, classrooms (especially those
          supporting distance learning) and other large-scale environments
          such as stadiums. Since humans are more susceptible to differences
          in audio delay, this use case needs even more accuracy than the
          video wall use case. Depending on the exact application, the need
          for accuracy can then be in the range of microseconds <xref
          target="Olsen"></xref>.</t>

          <t hangText="Sensor Arrays">: Sensor arrays contain many
          synchronised measurement elements producing signals which are then
          combined to form an overall measurement. Accurate capture of the
          phase relationships between the various signals arriving at each
          element of the array is critically important for proper operation.
          Examples include towed or fixed sonar arrays, seismic arrays and
          phased arrays used in radar applications, for instance.</t>
        </list></t>
    </section>

    <section anchor="definitions" title="Definitions">
      <t>The following definitions are used in this draft:<list
          style="hanging">
          <t hangText="media level">: Media level information applies to a
          single SDP media stream. In an SDP description, media-level
          information appears after each "m"-line.</t>

          <t hangText="multimedia session">: A set of multimedia senders and
          receivers as well as the data streams flowing from senders to
          receivers. The <xref target="RFC4566">Session Description Protocol
          (SDP)</xref> describes multimedia sessions.</t>

          <t hangText="RTP media stream">: A single stream of RTP packets
          identified by an RTP SSRC.</t>

          <t hangText="RTP media sender">: The device generating an associated
          RTP media stream</t>

          <t hangText="SDP media stream">: An RTP session potentially
          containing more than one RTP source. SDP media descriptions
          beginning with an "m"-line define the parameters of an SDP media
          stream.</t>

          <t hangText="session level">: Session level information applies to
          an entire multimedia session. In an SDP description, session-level
          information appears before the first "m"-line.</t>

          <t hangText="source level">: Source level information applies to a
          specific RTP media stream. <xref target="RFC5576">Source-Specific
          Media Attributes in the Session Description Protocol (SDP)</xref>
          defines how source-level information is included into an SDP session
          description.</t>

          <t hangText="traceable time">: A clock is considered to provide
          traceable time if it can be proven to be synchronised to
          International Atomic Time (TAI). Coordinated Universal Time (UTC) is
          a time standard synchronized to TAI. UTC is therefore also
          considered traceable time once leap seconds have been taken unto
          account. <xref target="IS-GPS-200F">GPS</xref> is commonly used to
          provide a TAI traceable time reference. Some network time
          synchronisation protocols (e.g. <xref
          target="IEEE1588-2008">PTP</xref>, NTP) can explicitly indicate that
          the master clock is providing a traceable time reference over the
          network.</t>
        </list></t>
    </section>

    <section title="Timestamp Reference Clock Source Signalling">
      <t>The NTP format timestamps used by RTP are taken by reading a local
      real-time clock at the sender or receiver. This local clock may be
      synchronised to another clock (time source) by some means or it may be
      unsynchronised. A variety of methods are available to synchronise local
      clocks to a reference time source, including network time protocols
      (e.g. <xref target="RFC5905">NTP</xref>, <xref
      target="IEEE1588-2008">PTP</xref>) and radio clocks (e.g. <xref
      target="IS-GPS-200F">GPS</xref>).</t>

      <t>The following sections describe and define SDP signalling, indicating
      whether and how the local timestamping clock in an RTP sender/receiver
      is synchronised to a reference clock.</t>

      <section title="Clock synchronization">
        <t>Two or more local clocks that are sufficiently synchronised will
        produce timestamps for a given RTP event can be used as if they came
        from the same clock. Providing they are sufficiently synchronised,
        timestamps produced in one RTP sender or receiver can be directly
        compared to a local clock in another RTP sender or receiver.</t>

        <t>The accuracy of synchronisation required is application dependent.
        See <xref target="applications">Applications</xref> section for a
        discussion of applications and their corresponding requirements. To
        serve as a reference clock, clocks must minimally be syntonized
        (exactly frequency matched) to one another.</t>

        <t>Sufficient synchronisation can typically be achieving by using a
        network time protocol (e.g. NTP, 802.1AS, IEEE 1588-2008) to
        synchronize all devices to a single master clock.</t>

        <t>Another approach is to use clocks providing a global time reference
        (e.g. GPS, Galileo, GLONASS). This concept may be used in conjunction
        with network time protocols as some protocols (e.g. PTP, NTP) allow
        master clocks to indicate explicitly that they are providing traceable
        time.</t>
      </section>

      <section title="Identifying NTP Reference Clocks">
        <t>A single NTP server is identified by hostname (or IP address) and
        an optional port number. If the port number is not indicated, it is
        assumed to be the standard NTP port (123).</t>

        <t>Two or more NTP servers MAY be listed at the same level in the
        session description to indicate that all of the listed servers deliver
        the same reference time and may be used interchangeably. RTP senders
        and receivers are assured proper synchronization regardless of which
        server they choose and, in support of fault tolerance, may switch
        servers while streaming.</t>
      </section>

      <section title="Identifying PTP Reference Clocks">
        <t>The IEEE 1588 Precision Time Protocol (PTP) family of clock
        synchronisation protocols provides a shared reference clock in an
        network - typically a LAN. IEEE 1588 provides sub-microsecond
        synchronisation between devices on a LAN and typically locks within
        seconds at startup. With support from Ethernet switches, IEEE 1588
        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>Three flavours of IEEE 1588 are in use today:<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 also known
            as 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 also
            known as IEEE1588v2 or PTPv2. IEEE 1588-2008 is not protocol
            compatible with IEEE 1588-2002.</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 as described in
            <xref target="IEEE802.1BA-2011">IEEE 802.1BA-2011</xref>.</t>
          </list></t>

        <t>Each IEEE 1588 clock is identified by an EUI-64 called a
        "ClockIdentity". A slave clock using one of the IEEE 1588 family of
        network time protocols acquires the ClockIdentity/EUI-64 of the
        grandmaster clock that is the ultimate source of timing information
        for the network. A boundary clock which is itself slaved to another
        boundary clock or the grandmaster passes the grandmaster ClockIdentity
        through to its slaves.</t>

        <t>Several instances of the IEEE 1588 protocol may operate
        independently on a single network, forming distinct PTP domains, each
        of which may have a different grandmaster clock. As the IEEE 1588
        standards have developed, the definition of PTP domains has changed.
        IEEE 1588-2002 identifies protocol subdomains by a textual name, but
        IEEE 1588-2008 identifies protocol domains using a numeric domain
        number. 802.1AS is a Layer-2 profile of IEEE 1588-2008 supporting a
        single numeric clock domain (0).</t>

        <t>When PTP domains are signalled via SDP, senders and receivers
        SHOULD check that both grandmaster ClockIdentity and PTP domain match
        when determining clock equivalence.</t>

        <t>Two or more IEEE 1588 clocks MAY be listed at the same level in the
        session description to indicate that all of the listed clocks are
        candidate grandmaster clocks for the domain or deliver the same
        reference time and may be used interchangeably. RTP senders and
        receivers are assured proper synchronization regardless of which
        synchronization source they choose and, in support of fault tolerance,
        may switch reference clock source while streaming.</t>

        <t>The PTP protocols employ a distributed election protocol called the
        "Best Master Clock Algorithm" (BMCA) to determine the active clock
        master. The clock master choices available to BMCA can be restricted
        or biased by configuration parameters to influence the election
        process. In some systems it may be desirable to limit the number of
        possible PTP clock masters to avoid the need to re-signal timestamp
        reference clock sources when the clock master changes.</t>
      </section>

      <section title="Identifying Global Reference Clocks">
        <t>Global reference clocks provide a source of traceable time,
        typically via a hardware radio receiver interface. Examples include
        GPS, Galileo and GLONASS. Apart from the name of the reference clock
        system, no further identification is required.</t>
      </section>

      <section title="Private Reference Clocks">
        <t>In other systems, all RTP senders and receivers may use a timestamp
        reference clock that is not provided by one of the methods listed
        above. Examples may include the reference time information provided by
        digital television or cellular services. These sources are identified
        as "private" reference clocks. All RTP senders and receivers in a
        session using a private reference clock are assumed to have a
        mechanism outside this specification for determining whether their
        timestamp reference clocks are equivalent.</t>
      </section>

      <section anchor="localref" title="Local Reference Clocks">
        <t>RFC 3550 allows senders and receivers to either use a local wall
        clock reference for their NTP timestamps or, by setting the timestamp
        field to 0, to supply no timestamps at all. Both are common practice
        in embedded RTP implementations. These clocks are identified as
        "local" and can only be assumed to be equivalent to clocks originating
        from the same device.</t>
      </section>

      <section title="Traceable Reference Clocks">
        <t>A timestamp reference clock source may be labelled "traceable" if
        it is known to be to delivering traceable time. Providing adjustments
        are made for differing epochs, timezones and leap seconds, timestamps
        taken using clocks synchronised to a traceable time source can be
        directly compared even if the clocks are synchronised to different
        sources or via different mechanisms.</t>

        <t>Marking a clock as traceable allows additional information (e.g. IP
        addresses, PTP master identifiers and the like) to be omitted from the
        SDP since any traceable clock available at the answerer is considered
        to be an appropriate timestamp reference clock. For example, an
        offerer could could specify ts-refclk:ntp=/traceable/ and the answerer
        could use GPS as a reference clock since GPS is a source of traceable
        time.</t>
      </section>

      <section anchor="rcgrammar"
               title="SDP Signalling of Timestamp Reference Clock Source">
        <t>Specification of the timestamp reference clock source may be at any
        or all levels (session, media or source) of an SDP description (see
        <xref target="definitions">level definitions</xref> earlier in this
        document for more information).</t>

        <t>Timestamp reference clock source signalling included at
        session-level provides default parameters for all RTP sessions and
        sources in the session description. More specific signalling included
        at the media level overrides default session level signalling. More
        specific signalling included at the source level overrides default
        media level signalling.</t>

        <t>If timestamp reference clock source signalling is included anywhere
        in an SDP description, it must be properly defined for all levels in
        the description. This may simply be achieved by providing default
        signalling at the session level.</t>

        <t>Timestamp reference clock parameters may be repeated at a given
        level (i.e. for a session or source) to provide information about
        additional servers or clock sources. If the attribute is repeated at a
        given level, all clocks described at that level are assumed to be
        equivalent. Traceable time sources MUST NOT be mixed with
        non-traceable time sources at any given level.</t>

        <t>Note that clock source parameters may change from time to time, for
        example, as a result of a PTP clock master election. The <xref
        target="RFC3261">SIP</xref> protocol supports re-signalling of updated
        SDP information, however other protocols may require additional
        notification mechanisms.</t>

        <t>General forms of usage:<list style="hanging">
            <t hangText="session level:">a=ts-refclk:&lt;clksrc&gt;</t>

            <t hangText="media level:">a=ts-refclk:&lt;clksrc&gt;</t>

            <t hangText="source level:">a=ssrc:&lt;ssrc-id&gt;
            ts-refclk:&lt;clksrc&gt;</t>
          </list></t>

        <figure align="left" anchor="abnf-ts-refclk"
                title="Timestamp Reference Clock Source Signalling">
          <preamble><xref target="RFC5234">ABNF</xref> grammar for the
          timestamp reference clock attribute:</preamble>

          <artwork align="center"><![CDATA[; external references:
POS-DIGIT   = <See RFC 4566>
token       = <See RFC 4566>
byte-string = <See RFC 4566>
DIGIT       = <See RFC 5324>
HEXDIG      = <See RFC 5324>
CRLF        = <See RFC 5324>
hostport    = <See RFC 3261, with revisions from RFC 5954>

timestamp-refclk = "ts-refclk:" clksrc CRLF

clksrc = ntp / ptp / gps / gal / glonass / local / private / clksrc-ext

clksrc-ext         = clksrc-param-name clksrc-param-value
clksrc-param-name  = token
clksrc-param-value = ["=" byte-string ]

ntp             = "ntp=" ntp-server-addr
ntp-server-addr = hostport / "/traceable/"

ptp             = "ptp=" ptp-version ":" ptp-server
ptp-version     = "IEEE1588-2002"
                / "IEEE1588-2008"
                / "IEEE802.1AS-2011"
                / ptp-version-ext
ptp-version-ext = token

ptp-server      = ptp-gmid [":" ptp-domain]
                / "traceable"
ptp-gmid        = EUI64
ptp-domain      = ptp-domain-name / ptp-domain-nmbr

; PTP domain allowed characters: 0x21-0x7E (IEEE 1588-2002)
ptp-domain-name = "domain-name=" 1*16ptp-domain-char
ptp-domain-char = %x21-7E

; PTP domain allowed number range: 0-127 (IEEE 1588-2008)
ptp-domain-nmbr = "domain-nmbr=" ptp-domain-dgts
ptp-domain-dgts = ptp-domain-n1 / ptp-domain-n2 / ptp-domain-n3
ptp-domain-n1   = DIGIT             ; 0-9
ptp-domain-n2   = POS-DIGIT DIGIT   ; 10-99
ptp-domain-n3   = ("10"/"11") DIGIT ; 100-119
                / "12" %x30-37      ; 120-127

gps      =  "gps"
gal      =  "gal"
glonass  =  "glonass"
local    =  "local"
private  =  "private" [ ":traceable" ]

EUI64 = 7(2HEXDIG "-") 2HEXDIG

]]></artwork>
        </figure>

        <section title="Examples">
          <t><xref target="example-session-level"></xref> shows an example SDP
          description with a timestamp reference clock source defined at the
          session level.</t>

          <figure align="center" anchor="example-session-level"
                  title="Timestamp reference clock definition at the session level">
            <artwork><![CDATA[
v=0
o=jdoe 2890844526 2890842807 IN IP4 192.0.2.1
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.example.com/seminars/sdp.pdf
e=j.doe@example.com (Jane Doe)
c=IN IP4 233.252.0.1/64
t=2873397496 2873404696
a=recvonly
a=ts-refclk:ntp=/traceable/
m=audio 49170 RTP/AVP 0
m=video 51372 RTP/AVP 99
a=rtpmap:99 h263-1998/90000
]]></artwork>
          </figure>

          <t></t>

          <t><xref target="example-media-level"></xref> shows an example SDP
          description with timestamp reference clock definitions at the media
          level overriding the session level defaults.</t>

          <figure align="center" anchor="example-media-level"
                  title="Timestamp reference clock definition at the media level">
            <artwork><![CDATA[
v=0
o=jdoe 2890844526 2890842807 IN IP4 192.0.2.1
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.example.com/seminars/sdp.pdf
e=j.doe@example.com (Jane Doe)
c=IN IP4 233.252.0.1/64
t=2873397496 2873404696
a=recvonly
a=ts-refclk:local
m=audio 49170 RTP/AVP 0
a=ts-refclk:ntp=203.0.113.10
a=ts-refclk:ntp=198.51.100.22
m=video 51372 RTP/AVP 99
a=rtpmap:99 h263-1998/90000
a=ts-refclk:ptp=IEEE802.1AS-2011:39-A7-94-FF-FE-07-CB-D0
]]></artwork>
          </figure>

          <t></t>

          <t><xref target="example-source-level"></xref> shows an example SDP
          description with a timestamp reference clock definition at the
          source level overriding the session level default.</t>

          <figure align="center" anchor="example-source-level"
                  title="Timestamp reference clock signalling at the source level">
            <artwork><![CDATA[
v=0
o=jdoe 2890844526 2890842807 IN IP4 192.0.2.1
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.example.com/seminars/sdp.pdf
e=j.doe@example.com (Jane Doe)
c=IN IP4 233.252.0.1/64
t=2873397496 2873404696
a=recvonly
a=ts-refclk:local
m=audio 49170 RTP/AVP 0
m=video 51372 RTP/AVP 99
a=rtpmap:99 h263-1998/90000
a=ssrc:12345 ts-refclk:ptp=IEEE802.1AS-2011:39-A7-94-FF-FE-07-CB-D0
]]></artwork>
          </figure>
        </section>
      </section>
    </section>

    <section title="Media Clock Source Signalling">
      <t>The media clock source for a stream determines the timebase used to
      advance the RTP timestamps included in RTP packets. The media clock may
      be asynchronously generated by the sender, it may be generated in fixed
      relationship to the reference clock or it may be generated with respect
      to another stream on the network (which is presumably being received by
      the sender).</t>

      <section anchor="asyncmc" title="Asynchronously Generated Media Clock">
        <t>In the simplest sender implementation, the sender generates media
        by sampling audio or video according to a free-running local clock.
        The RTP timestamps in media packets are advanced according to this
        media clock and packet transmission is typically timed to regular
        intervals on this timeline. The sender may or may not include an NTP
        timestamp in sender reports to allow mapping of this asynchronous
        media clock to a reference clock.</t>

        <t>The asynchronously generated media clock is the assumed mode of
        operation when there is no signalling of media clock source.
        Alternatively, asynchronous media clock may be explicitly
        signalled.<list>
            <t>a=mediaclk:sender</t>
          </list></t>
      </section>

      <section anchor="directmc" title="Direct-Referenced Media Clock">
        <t>A media clock may be directly derived from a reference clock. For
        this case it is required that a reference clock be specified with an
        a=ts-refclk attribute (<xref target="rcgrammar"></xref>).</t>

        <t>The signalling optionally indicates a media clock offset value. The
        offset indicates the RTP timestamp value at the epoch (time of origin)
        of the reference clock. To use the offset, implementations need to
        compute RTP timestamps from reference clocks. To simplify these
        calculations, streams utilizing offset signalling SHOULD use a TAI
        timestamp reference clock to avoid complications introduced by leap
        seconds. See <xref target="I-D.ietf-avtcore-leap-second"></xref> for
        further discussion of leap-second issues in timestamp reference
        clocks.</t>

        <t>To compute the RTP timestamp against an IEEE 1588 (TAI-based)
        reference, the time elapsed between the 00:00:00 1 January 1970 IEEE
        1588 epoch and the current time must be computed. Between the epoch
        and 1 January 2013, there were 15,706 days (including extra days
        during leap years). Since there are no leap seconds in a TAI
        reference, there are exactly 86,400 seconds during each of these days
        or a total of 1,356,998,400 seconds from the epoch to 00:00:00 1
        January 2013. A 90 kHz RTP clock for a video stream would have
        advanced 122,129,856,000,000 units over this period. With a signalled
        offset of 0, the RTP clock value modulo the 32-bit unsigned
        representation in the RTP header would have been 2,460,938,240 at
        00:00:00 1 January 2013. If an offset of 23,465 had been signalled,
        the clock value would have been 2,460,961,705.</t>

        <t>In order to use an NTP reference, the actual time elapsed between
        the 00:00:00, 1 January 1900 NTP epoch to the current time must be
        computed. 2,208,988,800 seconds elapsed between the NTP epoch and
        00:00:00 1 January 1970 <xref target="RFC0868"></xref>. Between the
        beginning of 1970 and 2013, there were 15,706 days elapsed (including
        extra days during leap years) and 25 leap seconds inserted. There is
        therefore a total of 3,565,987,225 seconds from the NTP epoch to
        00:00:00 1 January 2013. A 90 kHz RTP clock for a video stream would
        have advanced 320,938,850,250,000 units over this period. With a
        signalled offset of 0, the RTP clock value modulo the 32-bit unsigned
        representation would have been 1,714,023,696 at 00:00:00 1 January
        2013.</t>

        <t>If no offset is signalled, the offset can be inferred at the
        receiver by examining RTCP sender reports which contain NTP and RTP
        timestamps which combined define a mapping. The NTP/RTP timestamp
        mapping provided by RTCP SRs takes precedence over that singaled
        through SDP, however the media clock rate implied by the SRs MUST be
        consistent with the rate signalled.</t>

        <t>A rate modifier may be specified. The modifier is expressed as the
        ratio of two integers and modifies the rate specified or implied by
        the media description by this ratio. If omitted, the rate is assumed
        to be the exact rate specified or implied by the media format. For
        example, without a rate specification, the RTP clock for an 8 kHz
        G.711 audio stream will advance exactly 8000 units for each second
        advance in the reference clock from which it is derived.</t>

        <t>The rate modifier is primarily useful for accommodating certain
        "oddball" audio sample rates associated with NTSC video (see <xref
        target="example-mediaclk-2"></xref>). Modified rates are not advised
        for video streams which generally use a 90 kHz RTP clock regardless of
        frame rate or sample rate used for embedded audio. <list>
            <t>a=mediaclk:direct[=&lt;offset&gt;] [rate=&lt;rate
            numerator&gt;/&lt;rate denominator&gt;]</t>
          </list></t>
      </section>

      <section anchor="streammc" title="Stream-Referenced Media Clock">
        <t>A common synchronisation architecture for audio/visual systems
        involves distributing a reference media clock from a master device to
        a number of slave devices, typically by means of a cable. Examples
        include audio word clock distribution and video black burst
        distribution. In this case, the media clock is locally generated,
        often by a crystal oscillator and is not locked to a timestamp
        reference clock.</t>

        <t>To support this architecture across a network, a master clock
        identifier is associated with an RTP media stream carrying media clock
        timing information from a master device. The master clock identifier
        represents a media clock source in the master device. Slave devices in
        turn associate the master media clock identifier with streams they
        transmit, signalling the synchronisation relationship between the
        master and the transmitter's media clock.</t>

        <t>Slave devices recover media clock timing from the clock master
        stream, using it to synchronise the slave media clock with the master.
        Timestamps in the master clock RTP media stream are taken using the
        timestamp reference clock shared by the master and slave devices. The
        timestamps communicate information about media clock timing (rate,
        phase) from the master to the slave devices. Timestamps are
        communicated in the usual RTP fashion via RTCP SRs, or via the <xref
        target="RFC6051">RFC6051</xref> header extension. The stream media
        format may indicate other clock information, such as the nominal
        rate.</t>

        <t>Note that slaving of a device media clock to a master device does
        not affect the usual RTP lip sync / time alignment algorithms. Time
        aligned playout of two or more RTP sources still relies upon NTP
        timestamps supplied via RTCP SRs or by the RFC6051 timestamp header
        extension.</t>

        <t>In a given system, master clock identifiers must uniquely identify
        a single media clock source. Such identifiers MAY be manually
        configured, however identifiers SHOULD be generated according to the
        "short-term persistent RTCP CNAME" algorithm as described in <xref
        target="RFC7022">RFC7022</xref>. Master clock identifiers not already
        in base64 format MUST be encoded as a base64 strings when used in SDP.
        Although the RTCP CNAME algorithm is used to generate the master clock
        identifier, it is used to tag RTP sources in SDP descriptions and does
        not appear in RTCP as a CNAME.</t>

        <t>A reference stream can be an RTP stream or AVB stream based on the
        <xref target="IEEE1722">IEEE 1722</xref> standard.</t>

        <t>An RTP clock master stream SHOULD be identified at the source level
        by an SSRC <xref target="RFC5576"></xref> and master clock identifier.
        An RTP stream that provides media clock timing directly from a
        reference media clock (e.g. internal crystal, audio word clock or
        video blackburst signal) SHOULD tag the stream as a master clock
        source using the "src:" prefix. If master clock identifiers are
        declared at the media or session level, all RTP sources at or below
        the level of declaration MUST provide equivalent timing to a slave
        receiver.<list>
            <t>a=ssrc:&lt;ssrc&gt; mediaclk:id=src:&lt;media-clktag&gt;
            sender</t>

            <t>a=mediaclk:id=src:&lt;media-clktag&gt; sender</t>
          </list></t>

        <t>A transmitted RTP stream slaved to media clock master is signalled
        by including master clock identifier:<list>
            <t>a=mediaclk:id=&lt;media-clktag&gt; sender</t>
          </list></t>

        <t>An RTP media sender indicates that it is slaved to an IEEE 1722
        clock master via a stream identifier (an EUI-64):<list>
            <t>a=mediaclk:IEEE1722=&lt;StreamID&gt;</t>
          </list></t>

        <t>An RTP media sender may gateway IEEE 1722 media clock timing to
        RTP:<list>
            <t>a=mediaclk:id=src:&lt;media-clktag&gt;
            IEEE1722=&lt;StreamID&gt;</t>
          </list></t>
      </section>

      <section anchor="mcgrammar" title="SDP Signalling of Media Clock Source">
        <t>Specification of the media clock source may be at any or all levels
        (session, media or source) of an SDP description (see level
        definitions (Section 3) earlier in this document for more
        information).</t>

        <t>Media clock source signalling included at session level provides
        default parameters for all RTP sessions and sources in the session
        description. More specific signalling included at the media level
        overrides default session level signalling. Further, source-level
        signalling overrides media clock source signalling at the enclosing
        media level and session level.</t>

        <t>Media clock source signalling may be present or absent on a
        per-stream basis. In the absence of media clock source signals,
        receivers assume an asynchronous media clock generated by the
        sender.</t>

        <t>Media clock source parameters may be repeated at a given level
        (i.e. for a session or source) to provide information about additional
        clock sources. If the attribute is repeated at a given level, all
        clocks described at that level are comparable clock sources and may be
        used interchangeably.</t>

        <t>General forms of usage:<list style="hanging">
            <t hangText="session level:">a=mediaclk:&lt;mediaclock&gt;</t>

            <t hangText="media level:">a=mediaclk:&lt;mediaclock&gt;</t>

            <t hangText="source level:">a=ssrc:&lt;ssrc-id&gt;
            mediaclk:&lt;mediaclock&gt;</t>
          </list></t>

        <figure align="left" anchor="abnf-mediaclk"
                title="Media Clock Source Signalling">
          <preamble><xref target="RFC5234">ABNF</xref> grammar for the media
          clock reference attribute:</preamble>

          <artwork align="center"><![CDATA[; external references:
integer     = <See RFC 4566>
token       = <See RFC 4566>
byte-string = <See RFC 4566>
base64      = <See RFC 4566>
SP          = <See RFC 5234>
DIGIT       = <See RFC 5234>
HEXDIG      = <See RFC 5234>

media-clksrc = "mediaclk:" [media-clkid SP] mediaclock

media-clkid  = "id=" [ "src:" ] media-clktag
media-clktag = base64

mediaclock   = sender / direct / ieee1722-streamid / mediaclock-ext

mediaclock-ext         = mediaclock-param-name mediaclock-param-value
mediaclock-param-name  = token
mediaclock-param-value = [ "=" byte-string ]

sender = "sender"
direct = "direct" [ "=" 1*DIGIT ] [SP rate]
rate   = "rate=" integer "/" integer

ieee1722-streamid = "IEEE1722=" avb-stream-id
avb-stream-id     = EUI64
EUI64 = 7(2HEXDIG "-") 2HEXDIG

]]></artwork>
        </figure>
      </section>

      <section title="Examples">
        <t><xref target="example-mediaclk-1"></xref> shows an example SDP
        description 8 channels of 24-bit, 48 kHz audio transmitted as a
        multicast stream. Media clock is derived directly from an IEEE
        1588-2008 reference.</t>

        <figure align="center" anchor="example-mediaclk-1"
                title="Media clock directly referenced to IEEE 1588-2008">
          <artwork><![CDATA[
v=0
o=- 1311738121 1311738121 IN IP4 192.0.2.1
c=IN IP4 233.252.0.1/64
s= 
t=0 0
m=audio 5004 RTP/AVP 96
a=rtpmap:96 L24/48000/8
a=sendonly
a=ts-refclk:ptp=IEEE1588-2008:39-A7-94-FF-FE-07-CB-D0:0
a=mediaclk:direct=963214424
]]></artwork>
        </figure>

        <t><xref target="example-mediaclk-2"></xref> shows an example SDP
        description 2 channels of 24-bit, 44056 kHz NTSC "pull-down" media
        clock derived directly from an IEEE 1588-2008 reference clock</t>

        <figure align="center" anchor="example-mediaclk-2"
                title="&quot;Oddball&quot; sample rate directly referenced to IEEE 1588-2008">
          <artwork><![CDATA[
v=0
o=- 1311738121 1311738121 IN IP4 192.0.2.1
c=IN IP4 233.252.0.1/64
s= 
t=0 0
m=audio 5004 RTP/AVP 96
a=rtpmap:96 L24/44100/2
a=sendonly
a=ts-refclk:ptp=IEEE1588-2008:39-A7-94-FF-FE-07-CB-D0:0
a=mediaclk:direct=963214424 rate=1000/1001
]]></artwork>
        </figure>

        <t><xref target="example-mediaclk-3"></xref> shows the same 48 kHz
        audio transmission from <xref target="example-mediaclk-1"></xref> with
        media clock derived from another RTP stream.</t>

        <figure align="center" anchor="example-mediaclk-3"
                title="RTP stream with media clock slaved to a master">
          <artwork><![CDATA[
v=0
o=- 1311738121 1311738121 IN IP4 192.0.2.1
c=IN IP4 233.252.0.1/64
s= 
t=0 0
m=audio 5004 RTP/AVP 96
a=rtpmap:96 L24/48000/2
a=sendonly
a=ts-refclk:ptp=IEEE1588-2008:39-A7-94-FF-FE-07-CB-D0:0
a=mediaclk:id=MDA6NjA6MmI6MjA6MTI6MWY= sender
]]></artwork>
        </figure>

        <t><xref target="example-mediaclk-4"></xref> shows the same 48 kHz
        audio transmission from <xref target="example-mediaclk-1"></xref> with
        media clock derived from an IEEE 1722 AVB stream.</t>

        <figure align="center" anchor="example-mediaclk-4"
                title="RTP stream with media clock slaved to an IEEE1722 master device">
          <artwork><![CDATA[
v=0
o=- 1311738121 1311738121 IN IP4 192.0.2.1
c=IN IP4 233.252.0.1/64
s= 
t=0 0
m=audio 5004 RTP/AVP 96
a=rtpmap:96 L24/48000/2
a=sendonly
a=ts-refclk:ptp=IEEE1588-2008:39-A7-94-FF-FE-07-CB-D0:0
a=mediaclk:IEEE1722=38-D6-6D-8E-D2-78-13-2F
]]></artwork>
        </figure>
      </section>
    </section>

    <section anchor="sigconsid" title="Signalling Considerations">
      <t>Signalling of <xref target="rcgrammar">timestamp reference clock
      source</xref> and <xref target="mcgrammar">media clock source</xref> is
      defined to be used either by applications that implement the SDP
      Offer/Answer model <xref target="RFC3264"></xref> or by applications
      that use SDP to describe media and transport configurations.</t>

      <t>A description SHOULD include both reference clock signalling and
      media clock signalling. If no reference clock is available, this SHOULD
      be signalled as a <xref target="localref">local reference</xref>.</t>

      <t>When no media clock signalling is present, an asynchronous media
      clock (<xref target="asyncmc"></xref>) MUST be assumed. When no
      reference clock signalling is present, a local reference clock (<xref
      target="localref"></xref>) MUST be assumed.</t>

      <t>If a reference clock is not signalled or a local reference is
      specified, the corresponding media clock may be established as rate
      synchronised with no assurance of time synchronisation.</t>

      <t>When the description signals a direct-referenced media clock (<xref
      target="directmc"></xref>), reference clock signalling is REQUIRED.
      Asynchronous and stream-referenced media clocks (<xref
      target="streammc"></xref>) MAY be specified with or without a reference
      clock signalling.</t>

      <section title="Usage in Offer/Answer">
        <t>During offer/answer, clock source signalling via SDP uses a
        declarative model. Supported media and/or reference clocks are
        specified in the offered SDP description. The answerer may accept or
        reject the offer in an application-specific way depending on the
        clocks that are available and the clocks that are offered. For
        example, an answerer may choose to accept an offer that lacks a common
        clock by falling back to a lower performance mode of operation (e.g.
        by assuming reference or media clocks are local rather than shared).
        Conversely, the answerer may choose to reject the offer when the
        offered clock specifications indicate that the available reference
        and/or media clocks are incompatible.</t>

        <t>While negotiation of reference clock and media clock attributes is
        not defined in this document, negotiation MAY be accomplished using
        the capabilities negotiation procedures defined in <xref
        target="RFC5939"></xref>.</t>

        <section title="Indicating Support for Clock Source Signalling">
          <t>An offerer or answerer indicates support for media clock
          signalling by including a reference or media clock specification in
          the SDP description. An offerer or answerer without specific
          reference or media clocks to signal SHOULD indicate support for
          clock source signalling by including a <xref target="localref">local
          reference clock</xref> specification in the SDP description.</t>
        </section>

        <section title="Timestamp Reference Clock">
          <t>If one or more of the reference clocks specified in the offer are
          usable by the answerer, the answerer SHOULD respond with an answer
          containing the subset of reference clock specifications in the offer
          that are usable by the answerer. If the answerer rejects the offer
          because the available reference clocks are incompatible, the
          rejection MUST contain at least one timestamp reference clock
          specification usable by the answerer so that appropriate information
          is available for debugging. If no external reference clock is
          available to the answerer a <xref target="localref">local reference
          clock</xref> specification SHOULD be included in the rejection.</t>

          <t>In both offers and answers, multiple reference clock
          specifications indicate equivalent clocks from different sources
          which may be used interchangeably. RTP senders and receivers are
          assured proper synchronization regardless of which of the specified
          sources is chosen and, in support of fault tolerance, may switch
          clock sources while streaming.</t>
        </section>

        <section title="Media Clock">
          <t>If the media clock mode specified in the offer is acceptable to
          the answerer, the answerer SHOULD respond with an answer containing
          the same media clock specification as the offer. If the answerer
          rejects the offer because the available reference clocks are
          incompatible, the rejection MUST contain a media clock specification
          supported by the answerer so that appropriate information is
          available for debugging. If no shared media clocks are available to
          the answerer an <xref target="asyncmc">asynchronous media
          clock</xref> specification SHOULD be included in the rejection.</t>
        </section>
      </section>

      <section title="Usage Outside of Offer/Answer">
        <t>SDP can be employed outside of the Offer/Answer context, for
        instance for multimedia sessions that are announced through the
        Session Announcement Protocol (SAP) <xref target="RFC2974"></xref>, or
        streamed through the Real Time Streaming Protocol (RTSP) <xref
        target="RFC2326"></xref>.</t>

        <t>Devices using published descriptions to join sessions SHOULD assess
        their synchronization compatibility with the described session based
        on the clock source signalling and SHOULD NOT attempt to join a
        session with incompatible reference or media clocks.</t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>Entities receiving and acting upon an SDP message should note that a
      session description cannot be trusted unless it has been obtained by an
      authenticated transport protocol from a known and trusted source. Many
      different transport protocols may be used to distribute session
      description, and the nature of the authentication will differ from
      transport to transport. For some transports, security features are often
      not deployed. In case a session description has not been obtained in a
      trusted manner, the endpoint SHOULD exercise care because, among other
      attacks, the media sessions received may not be the intended ones, the
      destination where media is sent to may not be the expected one, any of
      the parameters of the session may be incorrect.</t>

      <t>Incorrect reference or media clock parameters may cause devices or
      streams to synchronize to unintended clock sources. Normally this simply
      results in failure to establish a session or failure to synchronize once
      connected. Enough devices fraudulently assigned to a specific clock
      source (e.g. a particular IEEE 1588 grandmaster) may, however,
      constitute a successful denial of service attack on that source. Devices
      MAY wish to validate the integrity of the clock description through some
      means before connecting to unfamiliar clock sources.</t>

      <t>The timestamp reference clocks negotiated by this protocol are used
      to provide media timing information to RTP. Negotiated timestamp
      reference clocks SHOULD NOT be relied upon to provide a secure time
      reference for security critical operations (e.g. the expiration of
      public key certificates).</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document defines two new SDP attributes: 'ts-refclk' and
      'mediaclk', within the existing Internet Assigned Numbers Authority
      (IANA) registry of SDP Parameters.</t>

      <t>This document also defines a new IANA registry subordinate to the
      IANA SDP Parameters registry: the Media Clock Source Parameters
      Registry. Within this new registry, this document defines an initial set
      of three media clock source parameters. Further, this document defines a
      second new IANA registry subordinate to the IANA SDP Parameters
      registry: the Timestamp Reference Clock Source Parameters Registry.
      Within this new registry, this document defines an initial six
      parameters.</t>

      <section title="Reference Clock SDP Parameter">
        <t>The SDP attribute "ts-refclk" defined by this document is
        registered with the IANA registry of SDP Parameters as follows:</t>

        <figure anchor="iana-refclk">
          <artwork><![CDATA[
SDP Attributes ( "att-field (both session and media level)" &
                 "att-field (source level)" ):

  Attribute name:     ts-refclk

  Long form:          Timestamp reference clock source

  Type of name:       att-field

  Type of attribute:  Session, media and source level

  Subject to charset: No

  Purpose:            See section 4 of this document

  Reference:          This document

  Values:             See section 8.3 of this document

]]></artwork>
        </figure>

        <t>The attribute has an extensible parameter field and therefore a
        registry for these parameters is required. This new registry is
        defined in <xref target="ts-par-registry"></xref>.</t>

        <t></t>
      </section>

      <section title="Media Clock SDP Parameter">
        <t>The SDP attribute "mediaclk" defined by this document is registered
        with the IANA registry of SDP Parameters as follows:</t>

        <figure anchor="iana-mediaclk">
          <artwork><![CDATA[
SDP Attributes ( "att-field (both session and media level)" &
                 "att-field (source level)" ):

  Attribute name:     mediaclk

  Long form:          Media clock source

  Type of name:       att-field

  Type of attribute:  Session, media and source level

  Subject to charset: No

  Purpose:            See section 5 of this document

  Reference:          This document

  Values:             See section 8.4 of this document

]]></artwork>
        </figure>

        <t>The attribute has an extensible parameter field and therefore a
        registry for these parameters is required. The new registry is defined
        in <xref target="mclk-par-registry"></xref>.</t>
      </section>

      <section anchor="ts-par-registry"
               title="Timestamp Reference Clock Source Parameters Registry">
        <t>This document creates a new IANA sub-registry called the Timestamp
        Reference Clock Source Parameters Registry, subordinate to the IANA
        SDP Parameters registry. Each entry in the Timestamp Reference Clock
        Source Parameters Registry contains:<list style="hanging">
            <t hangText="Name:">Token used in the SDP description
            (clksrc-param-name)</t>

            <t hangText="Long name:">Descriptive name for the timestamp
            reference clock source</t>

            <t hangText="Reference:">Reference to the document describing the
            SDP token (clksrc-param-name) and syntax for the optional value
            associated with the token (mediaclock-param-value)</t>
          </list></t>

        <t>Initial values for the Timestamp Reference Clock Source Parameters
        registry are given below.</t>

        <t>Future assignments are to be made through the Specification
        Required policy <xref target="RFC5226"></xref>. The Name field in the
        table corresponds to a new value corresponding to clksrc-param-name.
        The Reference must specify a syntax corresponding to
        clksrc-param-value.</t>

        <texttable>
          <ttcol>Name</ttcol>

          <ttcol>Long Name</ttcol>

          <ttcol>Reference</ttcol>

          <c>ntp</c>

          <c>Network Time Protocol</c>

          <c>This document, section 4</c>

          <c>ptp</c>

          <c>Precision Time Protocol</c>

          <c>This document, section 4</c>

          <c>gps</c>

          <c>Global Position System</c>

          <c>This document, section 4</c>

          <c>gal</c>

          <c>Galileo</c>

          <c>This document, section 4</c>

          <c>glonass</c>

          <c>Global Navigation Satellite System</c>

          <c>This document, section 4</c>

          <c>local</c>

          <c>Local Clock</c>

          <c>This document, section 4</c>

          <c>private</c>

          <c>Private Clock</c>

          <c>This document, section 4</c>
        </texttable>
      </section>

      <section anchor="mclk-par-registry"
               title="Media Clock Source Parameters Registry">
        <t>This document creates a new IANA sub-registry called the Media
        Clock Source Parameters registry, subordinate to the IANA SDP
        Parameters registry. Each entry in the Media Clock Source Parameters
        Registry contains:<list style="hanging">
            <t hangText="Name:">Token used in the SDP description
            (mediaclock-param-name)</t>

            <t hangText="Long name:">Descriptive name for the media clock
            source type</t>

            <t hangText="Reference:">Reference to the document describing the
            SDP token (mediaclock-param-name) and syntax for the optional
            value associated with the token (mediaclock-param-value)</t>
          </list></t>

        <t>Initial values for the Media Clock Source Parameters registry are
        given below.</t>

        <t>Future assignments are to be made through the Specification
        Required policy <xref target="RFC5226"></xref>. The Name field in the
        table corresponds to a new value corresponding to
        mediaclock-param-name. The Reference must specify a syntax
        corresponding to mediaclock-param-value.</t>

        <texttable>
          <ttcol>Name</ttcol>

          <ttcol>Long Name</ttcol>

          <ttcol>Reference</ttcol>

          <c>sender</c>

          <c>Asynchronously Generated Media Clock</c>

          <c>This document, section 5</c>

          <c>direct</c>

          <c>Direct-Referenced Media Clock</c>

          <c>This document, section 5</c>

          <c>IEEE1722</c>

          <c>IEEE1722 Media Stream Identifier</c>

          <c>This document, section 5</c>
        </texttable>
      </section>

      <section title="Source-level Attributes">
        <t><xref target="RFC5576"></xref> requires new source-level attributes
        to be registered with the IANA registry named "att-field (source
        level)".</t>

        <section title="Source-level Timestamp Reference Clock Attribute">
          <t>The source-level SDP attribute "ts-refclk" defined by this
          document is registered with the "att-field (source level)" IANA
          registry of SDP Parameters according to <xref
          target="iana-refclk"></xref>.</t>
        </section>

        <section title="Source-level Media Clock Attribute">
          <t>The source-level SDP attribute "mediaclk" defined by this
          document is registered with the "att-field (source level)" IANA
          registry of SDP Parameters according to <xref
          target="iana-mediaclk"></xref>.</t>
        </section>
      </section>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank Magnus Westerlund and Paul Kyzivat
      for valuable comments which resulted in important improvements to this
      document.</t>
    </section>
  </middle>

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

      <?rfc include="reference.RFC.5234"?>

      <?rfc include="reference.RFC.3264"?>

      <?rfc include="reference.RFC.4566"?>

      <?rfc include="reference.RFC.5226"?>

      <?rfc include="reference.RFC.5576"?>

      <?rfc include="reference.RFC.5905"?>

      <?rfc include="reference.RFC.6051"?>

      <?rfc include="reference.RFC.7022"?>

      <reference anchor="IEEE1588-2002"
                 target="http://standards.ieee.org/findstds/standard/1588-2002.html">
        <front>
          <title>1588-2002 - 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>1588-2008 - 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="IEEE802.1AS-2011"
                 target="http://standards.ieee.org/findstds/standard/802.1AS-2011.html">
        <front>
          <title>Timing and Synchronization for Time-Sensitive Applications in
          Bridged Local Area Networks</title>

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

          <date />
        </front>
      </reference>

      <reference anchor="IEEE1722"
                 target="http://standards.ieee.org/findstds/standard/1722-2011.html">
        <front>
          <title>IEEE Standard for Layer 2 Transport Protocol for Time
          Sensitive Applications in a Bridged Local Area Network</title>

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

          <date />
        </front>
      </reference>
    </references>

    <references title="Informative References">
      <reference anchor="Olsen"
                 target="http://www.ieee802.org/1/files/public/docs2007/as-dolsen-time-accuracy-0407.pdf">
        <front>
          <title>Time Accuracy Requirements in Audio Networks</title>

          <author fullname="Dave Olsen" initials="D" surname="Olsen">
            <organization>Harman Pro Group</organization>
          </author>

          <date day="23" month="April" year="2007" />
        </front>
      </reference>

      <?rfc include="reference.RFC.0868"?>

      <?rfc include="reference.RFC.2326"?>

      <?rfc include="reference.RFC.2974"?>

      <?rfc include="reference.RFC.3261"?>

      <?rfc include="reference.RFC.5939"?>

      <?rfc include="reference.I-D.ietf-avtcore-idms"?>

      <?rfc include="reference.I-D.ietf-avtcore-leap-second"?>

      <!--
			<reference anchor="I-D.draft-ietf-avtcore-leap-second">
        <front>
          <title>RTP and Leap Seconds</title>

          <author fullname="K. Gross" initials="K." surname="Gross">
            <organization/>
          </author>

          <author fullname="R. van Brandenburg" initials="R."
                  surname="van Brandenburg">
            <organization/>
          </author>
          <date day="27" month="August" year="2013"/>
        </front>
      </reference>
-->

      <reference anchor="IEEE802.1BA-2011"
                 target="http://standards.ieee.org/findstds/standard/802.1BA-2011.html">
        <front>
          <title>Audio Video Bridging (AVB) Systems</title>

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

          <date />
        </front>
      </reference>

      <reference anchor="IS-GPS-200F">
        <front>
          <title>Navstar GPS Space Segment/Navigation User Segment
          Interfaces</title>

          <author>
            <organization>Global Positioning Systems
            Directorate</organization>
          </author>

          <date day="21" month="September" year="2011" />
        </front>
      </reference>

      <reference anchor="SMPTE-318-1999" target="http://standards.smpte.org/">
        <front>
          <title>Television and Audio &ndash; Synchronization of 59.94- or
          50-Hz Related Video and Audio Systems in Analog and Digital Areas
          &ndash; Reference Signals</title>

          <author>
            <organization>Society of Motion Picture &amp; Television
            Engineers</organization>
          </author>

          <date />
        </front>
      </reference>

      <reference anchor="AES11-2009" target="http://www.aes.org/standards/">
        <front>
          <title>AES11-2009: AES recommended practice for digital audio
          engineering - Synchronization of digital audio equipment in studio
          operations</title>

          <author>
            <organization>Audio Engineering Society</organization>
          </author>

          <date />
        </front>
      </reference>
    </references>
  </back>
</rfc>
