Subject: [xrblock] Comments on draft-ietf-xrblock-rtcp-xr-synchronization-00

From: "Huangyihong (Rachel)" <[email-masked]>
Date: Thu, 18 Oct 2012 03:30:54 +0000

Hi folks,

I have 2 comments for draft-ietf-xrblock-rtcp-xr-synchronization:

1.       In RTP flows synchronization offset metric block, only one SSRC set to the SSRC of the reference RTP stream has been specified. IMO,  the SSRC of the reporting stream should be also required.

2.       Synchronization offset is a 64-bit unsigned fixed-point number. No indication shows which stream, the reporting stream or the reference stream,  is lag behind. So I propose to split one bit from "Reserved" field to indicate the offset direction.

Best Regards!
Rachel

---

From: Colin Perkins <[email-masked]>
Date: Wed, 24 Oct 2012 15:43:57 +0100

On 18 Oct 2012, at 04:30, Huangyihong (Rachel) wrote:
> 2.       Synchronization offset is a 64-bit unsigned fixed-point number. No indication shows which stream, the reporting stream or the reference stream,  is lag behind. So I propose to split one bit from “Reserved” field to indicate the offset direction.

It would probably be easier to implement if you made the Synchronisation Offset a signed 64 bit value, rather than an unsigned 64 bit value and a separate sign bit.

-- 
Colin Perkins
http://csperkins.org/

---

From: "Huangyihong (Rachel)" <[email-masked]>
Date: Thu, 25 Oct 2012 02:17:11 +0000

Hi Colin,

Please see inline.

Best Regards!
Rachel

-----Original Message-----
From: Colin Perkins [mailto:[email-masked]] 
Sent: Wednesday, October 24, 2012 10:44 PM
To: Huangyihong (Rachel)
Cc: [email-masked]
Subject: Re: [xrblock] Comments on draft-ietf-xrblock-rtcp-xr-synchronization-00

[Rachel]: The reason I proposed that is because the synchronization offset is represented using the timestamp format of NTP (a 64-bit unsigned fixed-point number), which I think it's better to keep it unchanged.  Are you suggesting to use a nonstandard format instead of the standard NTP format? But you're right that it may be easier for implementations to use a signed value to tell fast or slow from 2 streams.
-- 
Colin Perkins
http://csperkins.org/

---

From: Colin Perkins <[email-masked]>
Date: Mon, 29 Oct 2012 14:32:33 +0000

Rachel,

> [Rachel]: The reason I proposed that is because the synchronization offset is represented using the timestamp format of NTP (a 64-bit unsigned fixed-point number), which I think it's better to keep…

Thinking about this more, I'm confused why you need a 64 bit NTP format timestamp here. With the addition of a sign bit, this choice allows you to represent synchronisation offsets up to 136 years in either direction with picosecond accuracy. That range seems unnecessary. What is the actual requirement?

-- 
Colin Perkins
http://csperkins.org/

---

From: "Huangyihong (Rachel)" <[email-masked]>
Date: Tue, 30 Oct 2012 03:09:48 +0000

Hi Colin,

Best Regards!
Rachel

-----Original Message-----
From: Colin Perkins [mailto:[email-masked]] 
Sent: Monday, October 29, 2012 10:33 PM
To: Huangyihong (Rachel)
Cc: [email-masked]
Subject: Re: [xrblock] Comments on draft-ietf-xrblock-rtcp-xr-synchronization-00

Rachel,

[Rachel]: The reason of using 64 bit NTP format timestamp is for accuracy, which has been discussed in the list before ( http://www.ietf.org/mail-archive/web/xrblock/current/msg00504.html ). But I agree with you that an additional sign bit is unnecessary. Your proposal makes sense here.

-- 
Colin Perkins
http://csperkins.org/

---

From: Hitoshi Asaeda <[email-masked]>
Date: Tue, 30 Oct 2012 13:38:04 +0900 (JST)

Hi Colin and Rachel,

> [Rachel]: The reason of using 64 bit NTP format timestamp is for accuracy, which has been discussed in the list before ( http://www.ietf.org/mail-archive/web/xrblock/current/msg00504.html ). But I…

Well, the reason we use a 64 bit NTP format timestamp is just its
simplicity. While we don't need such long format, it'd be easier to
reuse it for the implementation, I thought.
But I also don't have no objection to make it signed.

Regards,
--
Hitoshi Asaeda

---

From: Kevin Gross <[email-masked]>
Date: Tue, 30 Oct 2012 12:49:28 -0600

The accuracy requirement we've discussed for presentation times is 10
microseconds or better. I apologize that I have not yet drafted an I-D I
promised summarizing these requirements. Required range is on the order of
several seconds, maybe up to a minute. We need most of the bits to the
right of the decimal in the NTP timestamp but we don't need many to the
left. The reason we included all 64 is because the 64-bit NTP timestamp is
the smallest standard timestamp format that gives us the resolution
required. A non-standard format as small as 40 bits would suffice but RTCP
is not a particularly bandwidth constrained protocol and the standard
format and 32-bit word alignment as proposed in the draft should simplify
implementation.

It looks like I've overlooked issues with Synchronization Delay and
Synchronization Offset in my previous review.

The Synchronization Delay definition needs to provide a more specific
description of what's being referred to in RFC 6051 for defining the
reference point for this measurement. Specifically the draft needs to
define "beginning of session". I don't find such a concept in RFC 6051. RFC
6051 section 2.1.1 defines when sessions are joined but probably not in
enough detail to know how to do a measurement referenced to this point.

The text in 4.2 of the delay draft, "from the RTCP packets received on all
of the components RTP sessions to the beginning of session" might lead some
implementers to compute a negative Synchronization Delay. Revers the from
and to clauses in the text or add a formula to clarify.

There seems to be a dimensional problem in the Synchronization Offset
definition. Everything in the definition is in units of RTP clock but since
we're using an NTP timestamp for the report, I assume this is supposed to
define a quantity in units of NTP time.

Kevin Gross
+1-303-447-0517
Media Network Consultant
AVA Networks - www.AVAnw.com <http://www.avanw.com/>, www.X192.org

On Mon, Oct 29, 2012 at 10:38 PM, Hitoshi Asaeda <[email-masked]>wrote:

> >>>> 1.       In RTP flows synchronization offset metric block, only one
> SSRC set to the SSRC of the reference RTP stream has been specified. IMO,
>  the SSRC of the reporting stream should be also required.
> >>>> 2.       Synchronization offset is a 64-bit unsigned fixed-point
> number. No indication shows which stream, the reporting stream or the
> reference stream,  is lag behind. So I propose to split one bit from
> "Reserved" field to indicate the offset direction.
> >>>
> >>> It would probably be easier to implement if you made the
> Synchronisation Offset a signed 64 bit value, rather than an unsigned 64
> bit value and a separate sign bit.
> >>>
> >> [Rachel]: The reason I proposed that is because the synchronization
> offset is represented using the timestamp format of NTP (a 64-bit unsigned
> fixed-point number), which I think it's better to keep it unchanged.  Are
> you suggesting to use a nonstandard format instead of the standard NTP
> format? But you're right that it may be easier for implementations to use a
> signed value to tell fast or slow from 2 streams.
> >
> >
> > Thinking about this more, I'm confused why you need a 64 bit NTP format
> timestamp here. With the addition of a sign bit, this choice allows you to
> represent synchronisation offsets up to 136 years in either direction with
> picosecond accuracy. That range seems unnecessary. What is the actual
> requirement?
> >
> > [Rachel]: The reason of using 64 bit NTP format timestamp is for
> accuracy, which has been discussed in the list before (
> http://www.ietf.org/mail-archive/web/xrblock/current/msg00504.html ). But
> I agree with you that an additional sign bit is unnecessary. Your proposal
> makes sense here.
>
> _______________________________________________
> xrblock mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/xrblock
>

---

From: "Huangyihong (Rachel)" <[email-masked]>
Date: Wed, 31 Oct 2012 03:26:51 +0000

Hi Kevin,

Best Regards!
Rachel

From: Kevin Gross [mailto:[email-masked]]
Sent: Wednesday, October 31, 2012 2:49 AM
To: Hitoshi Asaeda
Cc: Huangyihong (Rachel); [email-masked]; [email-masked]
Subject: Re: [xrblock] Comments on draft-ietf-xrblock-rtcp-xr-synchronization-00

The accuracy requirement we've discussed for presentation times is 10 microseconds or better. I apologize that I have not yet drafted an I-D I promised summarizing these requirements. Required range is on the order of several seconds, maybe up to a minute. We need most of the bits to the right of the decimal in the NTP timestamp but we don't need many to the left. The reason we included all 64 is because the 64-bit NTP timestamp is the smallest standard timestamp format that gives us the resolution required. A non-standard format as small as 40 bits would suffice but RTCP is not a particularly bandwidth constrained protocol and the standard format and 32-bit word alignment as proposed in the draft should simplify implementation.

[Rachel]: Thanks for the clarifications.

It looks like I've overlooked issues with Synchronization Delay and Synchronization Offset in my previous review.

The Synchronization Delay definition needs to provide a more specific description of what's being referred to in RFC 6051 for defining the reference point for this measurement. Specifically the draft needs to define "beginning of session". I don't find such a concept in RFC 6051. RFC 6051 section 2.1.1 defines when sessions are joined but probably not in enough detail to know how to do a measurement referenced to this point.

The text in 4.2 of the delay draft, "from the RTCP packets received on all of the components RTP sessions to the beginning of session" might lead some implementers to compute a negative Synchronization Delay. Revers the from and to clauses in the text or add a formula to clarify.

[Rachel]: Good point. How about the following changes?
OLD TEXT:
"             The average delay, expressed in units of 1/65536 seconds, from the
      RTCP packets received on all of the components RTP sessions to the
      beginning of session [RFC6051].
"
NEW TEXT:
"             The average delay, expressed in units of 1/65536 seconds, from the
      time when sessions are joined [RFC6051] to the
      RTCP packets received on all of the components RTP sessions.
"

There seems to be a dimensional problem in the Synchronization Offset definition. Everything in the definition is in units of RTP clock but since we're using an NTP timestamp for the report, I assume this is supposed to define a quantity in units of NTP time.

[Rachel] Okay. I would propose following changes.
OLD TEXT:
"
      That is to say,if Si is the RTP timestamp from the
      reporting RTP packet i, and Ri is the time of arrival in RTP
      timestamp units for reporting RTP packet i, Sj is the RTP
      timestamp from the reference RTP packet j, and Rj is the time of
      arrival in RTP timestamp units for reference RTP packet j, then
      the value of the synchronization offset D may be expressed as
         D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)
"

NEW TEXT:
"
        That is to say, if Si is the NTP timestamp from the
      reporting RTP packet i, and Ri is the time of arrival in
      NTP timestamp units for reporting RTP packet i, Sj is the NTP
      timestamp from the reference RTP packet j, and Rj is the time of
      arrival in NTP timestamp units for reference RTP packet j, then
      the value of the synchronization offset D may be expressed as
         D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)
              Where Si, Ri, Sj and Rj are calculated from their corresponding
     RTP timestamps.
"

---

From: Colin Perkins <[email-masked]>
Date: Wed, 31 Oct 2012 11:06:43 +0000

> The Synchronization Delay definition needs to provide a more specific description of what's being referred to in RFC 6051 for defining the reference point for this measurement. Specifically the dra…

The definition in RFC 6051 Section 2.1.1 gives a join time for a single session for a sender, but this draft could define a similar metric for a receiver. In any case, that gives the join time for a single RTP session, but the initial synchronisation delay metric is likely for a group of RTP sessions, and so needs to be defined with reference to some specific RTP session.

> AVA Networks - www.AVAnw.com, www.X192.org
> 
> 
> 
> On Mon, Oct 29, 2012 at 10:38 PM, Hitoshi Asaeda <[email-masked]> wrote:
> Hi Colin and Rachel,
> 
> >>>> Hi folks,
> >>>>

-- 
Colin Perkins
http://csperkins.org/