[AVTCORE] draft-ietf-avtcore-rtp-over-quic: Section 8.4.1 Mapping QUIC Feedback to RTCP Receiver Reports ("RR")
Bernard Aboba <bernard.aboba@gmail.com> Fri, 29 September 2023 01:10 UTC
Return-Path: <bernard.aboba@gmail.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 14D71C15154A for <avt@ietfa.amsl.com>; Thu, 28 Sep 2023 18:10:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jTZWFKaClyef for <avt@ietfa.amsl.com>; Thu, 28 Sep 2023 18:10:00 -0700 (PDT)
Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CCBC2C151064 for <avt@ietf.org>; Thu, 28 Sep 2023 18:10:00 -0700 (PDT)
Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-578d0dcd4e1so8664038a12.2 for <avt@ietf.org>; Thu, 28 Sep 2023 18:10:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695949800; x=1696554600; darn=ietf.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=+8NljYz5EtBIgCzOz5qG/hHBzoMyq09gJK+YHGlKqLU=; b=dSJGdyTMDjnlm2GauHow3twa5ee1g0vgFlbpjrfHS9ppC+xOCHs65K4QxpkA5hH1tg di0MuoKuAZrPUkB7y8v8PpXqOyAWNXhX0MbAGJ6LGyY9iMS/XC2HKEDXOUZW8PYSiC6B JQyzK2TVvSgEtFJ2J69ET4bQTzA3+g6wYojW3D7k5/3QXtXa4Dk5APJvv7LSJ+6UloYD ONE8zG58Q9w5QodHQyqQ7ieFwoBestOhr5JWfB9QhymkE3cKgphvS5h98A8XoNqxhaiW 5iHmF59w/Shr4pPdyyAnIPGnh8ClIBFfF63OtYANoeS/2iB5HTHR/gHRP9j41EJk4EH9 /FlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695949800; x=1696554600; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+8NljYz5EtBIgCzOz5qG/hHBzoMyq09gJK+YHGlKqLU=; b=ljcYQx9q5WQ/Ch4VtcpWlU1JOmT2nD0KYU8d8/Lqt4MLGDmY94DhaGFdq0dK2Hv6ky GjU7pQcGtY1ygixl1KREPxNscgZPYicQ9xzwdJpZ7bLu+XOagb95htaiaojTpUmpcIEV c6rbKgt5Q5WP4mZfEVrRA671v2BggtIVSlL9QdmAYT3D3P8Us8ZmzeNaKlbDjHqGiIdM 3aQZBDV4C75AhWgoksgHY9WQVQY7sMb1KNBIIlC9f2b6r2AWXs+uTRR7p3fwvJKZwdxA IDtXqw0SaRYlYjrJ6rgVbSztsBGkdxWCShbGGuTqRi8T6QZ8gYHFs+SDXikItjQkYR8l mQ5w==
X-Gm-Message-State: AOJu0Yz1m7ITfjOOQ8YHqSPA8bFCSWay8kiGKB+XYS1vJ4wYDvg7Mlfm QmDtSlGB8xj3sg/zYAvm6zQf2BqoA8jGCsI+y5zRgT0SQoqqcA==
X-Google-Smtp-Source: AGHT+IHlC7fCs9ByJ2Y/U9XomvwPBIxm3mpvug8t3mXg5e3jVX7Khua6seDwggKolaktoFv2WlHV/OqwxlOl9M7U18E=
X-Received: by 2002:a05:6a21:99a8:b0:161:76a4:4f79 with SMTP id ve40-20020a056a2199a800b0016176a44f79mr3383559pzb.23.1695949799350; Thu, 28 Sep 2023 18:09:59 -0700 (PDT)
MIME-Version: 1.0
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Thu, 28 Sep 2023 18:09:48 -0700
Message-ID: <CAOW+2dtp7RbeBWSrER9i-37XMSb=_FzOhFhxurv-ARpMyZOg6g@mail.gmail.com>
To: IETF AVTCore WG <avt@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000058e52e060675150d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/o6in-c7jAZ2mo0z8JKZdOEn5ZyA>
Subject: [AVTCORE] draft-ietf-avtcore-rtp-over-quic: Section 8.4.1 Mapping QUIC Feedback to RTCP Receiver Reports ("RR")
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Sep 2023 01:10:05 -0000
RoQ section 10.1 "Information to be exported from QUIC says:
"
- *Datagram Acknowledgment and Loss*: Section 5.2
<https://rfc-editor.org/rfc/rfc9221#section-5.2> of [RFC9221
<https://www.rfc-editor.org/rfc/rfc9221>] allows QUIC implementations to
notify the application that a QUIC Datagram was acknowledged or that it
believes a datagram was lost. The exposed information SHOULD include enough
information to allow the application to maintain a mapping between the
datagram that was acknowledged/lost and the RTP packet that was sent in
that datagram.¶
<https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic/#section-10.1-2.2>
"
Since this only refers to Datagram Acknowledgment and Loss, this lead me to
wonder about the implications for other transport modes (e.g.
frame/stream), particularly in scenarios where multiple SSRCs are sent over
the same QUIC connection.
RFC 3550 Section 6.4.2 defines the RTCP Receiver Report:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
header |V=2|P| RC | PT=RR=201 | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
report | SSRC_1 (SSRC of first source) |
block +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1 | fraction lost | cumulative number of packets lost |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| extended highest sequence number received |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| interarrival jitter |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| last SR (LSR) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| delay since last SR (DLSR) |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
report | SSRC_2 (SSRC of second source) |
block +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2 : ... :
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| profile-specific extensions |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
As noted in Section 8.4.1, an RTCP RR packet can provide information
relating to multiple sources, each identified by their own SSRCs. It is
possible for multiple SSRCs to be sent over the same QUIC connection.
Section 8.4.1 says:
Considerations for mapping QUIC feedback into *Receiver Reports* (PT=201,
Name=RR, [RFC3550 <https://www.rfc-editor.org/rfc/rfc3550>]) are:¶
<https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic/#section-8.4.1-1>
- *Fraction lost*: When RTP packets are carried in QUIC datagrams, the
fraction of lost packets can be directly inferred from QUIC's
acknowledgments. The calculation SHOULD include all packets up to the
acknowledged RTP packet with the highest RTP sequence number. Later packets
SHOULD be ignored, since they may still be in flight, unless other QUIC
packets that were sent after the RTP packet, were already acknowledged.¶
<https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic/#section-8.4.1-2.1>
- *Cumulative lost*: Similar to the fraction of lost packets, the
cumulative loss can be inferred from QUIC's acknowledgments including all
packets up to the latest acknowledged packet.
- *Highest Sequence Number received*: In RTCP, this field is a 32-bit
field that contains the highest sequence number a receiver received in an
RTP packet and the count of sequence number cycles the receiver has
observed. A sender sends RTP packets in QUIC packets and receives
acknowledgments for the QUIC packets. By keeping a mapping from a QUIC
packet to the RTP packets encapsulated in that QUIC packet, the sender can
infer the highest sequence number and number of cycles seen by the receiver
from QUIC acknowledgments.
[BA] As you note, for the sender to compute the info in the RTCP RR
(including Fraction Lost, Cumulative Lost, Highest Sequence Number
received, etc.) it is necessary for the sender to keep a mapping of QUIC
packets to RTP packet info (e.g. SSRC, sequence number).
Since Section 10.1 only mentions datagrams, is it envisaged that such a
mapping will be maintained for frame/stream transport? Does the existing
RoQ implementation support the mapping of QUIC ACKs to RTP info for
frame/stream transport?
- *Interarrival jitter*: If QUIC acknowledgments carry timestamps as
described in [I-D.draft-smith-quic-receive-ts
<https://datatracker.ietf.org/doc/html/draft-smith-quic-receive-ts-00>],
senders can infer the interarrival jitter from the arrival timestamps in
QUIC acknowledgments.¶
<https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic/#section-8.4.1-2.4>
- *Last SR*: Similar to lost packets, the NTP timestamp of the last
received sender report can be inferred from QUIC acknowledgments.¶
<https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-rtp-over-quic/#section-8.4.1-2.5>
- *Delay since last SR*: This field is not required when the receiver
reports are entirely replaced by QUIC feedback.
[BA] Given that Section 10.1 only mentions datagrams, is there an
assumption that RTCP RRs/SRs are sent using QUIC datagrams? In some QUIC
implementations, datagrams are prioritized over reliable streams, which
might help ensure that RTCP traffic isn't subject to excess delays or
starvation.
- [AVTCORE] draft-ietf-avtcore-rtp-over-quic: Secti… Bernard Aboba
- Re: [AVTCORE] draft-ietf-avtcore-rtp-over-quic: S… Mathis Engelbart