Re: [AVTCORE] Benjamin Kaduk's Discuss on draft-ietf-avtcore-multiplex-guidelines-11: (with DISCUSS and COMMENT)

Magnus Westerlund <magnus.westerlund@ericsson.com> Thu, 05 March 2020 16:30 UTC

Return-Path: <magnus.westerlund@ericsson.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 8978F3A17C5; Thu, 5 Mar 2020 08:30:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.101
X-Spam-Level:
X-Spam-Status: No, score=-2.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WrCIfc4kW3zJ; Thu, 5 Mar 2020 08:30:56 -0800 (PST)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on0621.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0e::621]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B72D43A17BB; Thu, 5 Mar 2020 08:30:55 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bbQdw81qINwjmConIq6niorq96Vj0vou6DO/EJqANgFTxAlNoinQhzm79XmmzCds78EFoLM8/AG8WhZJDkbMVI5CzNmHwJKbW2xmcd01keNSvozoSG/cnnJ0a0ckFkcxNmALEkL5h+U7SaaUkxoboVWVKTh2838Yi1NzHq8FNlqRj9+YREGTNMAiDOm+2n2173a0Ijhf0gvi+qGSpJI6qaOEK1Bedvy+W36ze/uNkmPR3zAPU2sBPX/0Q5u6FcHZWdoHZsIalVEuSQUZroruORwFCPBvUVw+KoBD6iZ+A+Vx7DDd4HDSVrenVqkrxNiJSaAjvvs4ep/25MwRye4BDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;bh=hiW5kJ/P16El8OenRUyLSeLny5Eq4PdiEGZQ5XWyMNA=; b=I5bmd1m9/K2ADnLmK7Z3//+B3kj0sS+mb8ZV+KrHSDmmEQXR0uO9pSfzxy25Djf4Qj5BdVX9ZybjOYkk4Hq87b46NhCP/0c79TByn2wl1g8rG6v7b0PQiQRz1g3XsVMh025WB6pMRBUPNGOy/nfoA7L31jVO4NXNuRX7HV7FvAuq7L4pOAt5Y9kbvyvhUkS4cdNwOSDNurX1ShRhV3pMWq0z6Kbd0rMxnqPYuTkNCHU0ogxJjLYOPo1S4TzzVqcKZCZVyi2K80yfyGAmnR3OvdZQ2aMy2vOepZgqm88/jvs7UCh1UUEPsPEfGQYhZ2NWiX/+3mnyFsE6sBx1F0H1PA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;bh=hiW5kJ/P16El8OenRUyLSeLny5Eq4PdiEGZQ5XWyMNA=; b=kGqeVTF+xUix8Y9CDwMSpePLk7sIZiF+RDDiNczYiCqGx/bIv/kJn1VRsOk2m6hiYr9eVe2wnodfKb31TFs2STnkkxmesHz+imFSj0jtTEXLFXBQugLpifcHUWH9DDubs1V7sKPHBJOBdHK9IpVVTVKZEuCvhuvIFEMtXrOlKV0=
Received: from DB7PR07MB4572.eurprd07.prod.outlook.com (52.135.133.12) by DB7PR07MB5948.eurprd07.prod.outlook.com (20.178.46.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.9; Thu, 5 Mar 2020 16:30:52 +0000
Received: from DB7PR07MB4572.eurprd07.prod.outlook.com ([fe80::5dc9:9b70:83a1:cbfd]) by DB7PR07MB4572.eurprd07.prod.outlook.com ([fe80::5dc9:9b70:83a1:cbfd%7]) with mapi id 15.20.2793.013; Thu, 5 Mar 2020 16:30:52 +0000
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
To: "iesg@ietf.org" <iesg@ietf.org>, "kaduk@mit.edu" <kaduk@mit.edu>
CC: "avtcore-chairs@ietf.org" <avtcore-chairs@ietf.org>, "jonathan.lennox42@gmail.com" <jonathan.lennox42@gmail.com>, "draft-ietf-avtcore-multiplex-guidelines@ietf.org" <draft-ietf-avtcore-multiplex-guidelines@ietf.org>, "avt@ietf.org" <avt@ietf.org>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-avtcore-multiplex-guidelines-11: (with DISCUSS and COMMENT)
Thread-Index: AQHV8nVfscRE4Hh/T0ytC2wkFDjOc6g6MfOA
Date: Thu, 05 Mar 2020 16:30:52 +0000
Message-ID: <d4b939b79839e0ed42658bf8d72fb09fd3c15051.camel@ericsson.com>
References: <158336138445.29463.15585769228284211900@ietfa.amsl.com>
In-Reply-To: <158336138445.29463.15585769228284211900@ietfa.amsl.com>
Accept-Language: sv-SE, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-mailer: Evolution 3.28.5-0ubuntu0.18.04.1
authentication-results: spf=none (sender IP is ) smtp.mailfrom=magnus.westerlund@ericsson.com;
x-originating-ip: [158.174.130.211]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: e5f1dd36-3587-4118-8676-08d7c122926e
x-ms-traffictypediagnostic: DB7PR07MB5948:
x-microsoft-antispam-prvs: <DB7PR07MB59488FA11DD11A685B0B083795E20@DB7PR07MB5948.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-forefront-prvs: 03333C607F
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(136003)(396003)(39860400002)(346002)(376002)(199004)(189003)(30864003)(66946007)(2906002)(186003)(76116006)(6486002)(91956017)(6506007)(36756003)(2616005)(86362001)(316002)(478600001)(66556008)(8936002)(81166006)(44832011)(966005)(6512007)(4326008)(64756008)(66476007)(26005)(66616009)(5660300002)(81156014)(66446008)(71200400001)(54906003)(110136005)(8676002)(99106002)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR07MB5948; H:DB7PR07MB4572.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: T3ferTbw+iM/ox4i+3bbxE5xRNy8iOnU7fbWIU3Ki0hdD49Zm/1FCxhmpv3e5VRf0sj/n+jm7b+0Fcem0MIG9Z0EqvdOOgOgY/FYuTbgmjz8/g+qYXynGPLK0HawcKzUNDJqqSipX6+5kbK9QaDX/v1QPAUilsxCoKWVIq99jj0tTgJqF5qKcVF2fP3L+janEZcqDW8ECmdHIRKfo0wr2lyrUN4Ktbp6UCClyFjcD03Zfxl2C3G1s3RsO6pGNZXtPKJUXYewZg2N8riBUdsBh89JkIA1r/wEHVRjRdUFPFKqwkuD2Gmm4Jmp2RwNHF1ZzDZg5OsZWLQlAu02xW2nX3bfcf1eIfYJpuNqdLmXCnF5ao9m/qEaY0mmlyNm869WcCBHJ14VlnWZMd9wFl5t5hzs7mvlCBbdcqqpNYNShPXl1CxfpiKPPpWHIkMUGp4ktUb0x7D10mFbcHQHwGE9Q8V9OGmuo6RvIuHvt1daJIOCTiKN3+c9dGZ/qMTC7hU847r6Og1MMM8E5tcoRqbgnl+j3F0RgEZPAPIr+VxxJSrogN72KgzMMD9NTApTosII
x-ms-exchange-antispam-messagedata: SJwzkbs2pxCJRojQVtl1/UoA3EDN5oVxCR2iFvzNmH61NqftvYtkM4FYnPZxI/T3JZrwtu72U+12t8SaCOraVFCyYVuGT1drZJ8I/QHRIInIw6sOQ21N+6AtOxjKgEziyKW+jn1/8mJFBEwdISgp5Q==
x-ms-exchange-transport-forked: True
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/x-pkcs7-signature"; boundary="=-+RHV7TCokIcxS9tfAqMs"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e5f1dd36-3587-4118-8676-08d7c122926e
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2020 16:30:52.4241 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Op5GeZOLtOCNiB3JbrPwH62gtUdK/JP3XB2lJQPyf9Fsz3ymcc1hKlPUywYLJanMIR7SEzySAkSiWt2m/tiCCc6NfZ6b9hPeGIY8Shpasho=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR07MB5948
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/R1UkbQNK1RiF8Eh3uDAk3SSZb1I>
Subject: Re: [AVTCORE] Benjamin Kaduk's Discuss on draft-ietf-avtcore-multiplex-guidelines-11: (with DISCUSS and COMMENT)
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 05 Mar 2020 16:31:00 -0000

Hi Ben,

Thanks for the many detailed comments. Please see inline for reponses and
comments.

On Wed, 2020-03-04 at 14:36 -0800, Benjamin Kaduk via Datatracker wrote:
> Benjamin Kaduk has entered the following ballot position for
> draft-ietf-avtcore-multiplex-guidelines-11: Discuss
> 
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> 
> 
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about IESG DISCUSS and COMMENT positions.
> 
> 
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-avtcore-multiplex-guidelines/
> 
> 
> 
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> As Mirja maybe already noted, Section 3.4.3 says:
> 
>    Section 8.3 of the RTP Specification [RFC3550] recommends using a
>    single SSRC space across all RTP sessions for layered coding.  Based
>    on the experience so far however, we recommend to use a solution with
>    explicit binding between the RTP streams that is agnostic to the used
>    SSRC values.  That way, solutions using multiple RTP streams in a
> 
> This sounds an awful lot like we're trying to update the recommendations
> from RFC 3550, and looks like different text than was discussed in
> Mirja's ballot thread.  Let's discuss whether the formal Updates:
> mechanism is appropriate here or we should consider rewording.


I think maybe the simplest rewording is dropping the explicit reference to
Section 8.3. It is a good recommendation to use an explicit mechanism that is
independent on your RTP session structure. 

AVTCORE should consider updating this part of the RTP specification. And that is
a fairly short and straightforward document. 

> 
> 
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> Abstract, Introduction
> 
> Do we consider SRTP to be included in discussion of "RTP"?

Yes, SRTP is actually "just" a profile of RTP or actually two (SAVP and SAVPF). 

> 
> Section 1
> 
>    from a particular usage of the RTP multiplexing points.  The document
>    will provide some guidelines and recommend against some usages as
>    being unsuitable, in general or for particular purposes.
> 
> If something is unsuitable in general, should the protocol feature be
> deprecated/removed?

One common unsuitable usage is to overload the payload type for other purposes.
We can't deprecate the PT as that would mean that a receiver can't interpret the
RTP Payload in the right way. This document do discuss why overloading it is
unsuitable and provides alternatives for how to do this a better way. 

> 
> Section 2.1
> 
>    RTP Session Group:  One or more RTP sessions that are used together
>       to perform some function.  Examples are multiple RTP sessions used
>       to carry different layers of a layered encoding.  In an RTP
>       Session Group, CNAMEs are assumed to be valid across all RTP
>       sessions, and designate synchronisation contexts that can cross
>       RTP sessions; i.e. SSRCs that map to a common CNAME can be assumed
>       to have RTCP SR timing information derived from a common clock
>       such that they can be synchronised for playout.
> 
> I suggest expanding "RTCP SR timing" or providing a definition.

Yes, we can expand that to RTCP Sender Report timing. 
> 
> Section 3.1
> 
> It seems a little surprising to use simulcast as an example in the
> "needed to represent one media source" bullet and then have separate
> bullets for simulcast permutations.

Yes, that is a bit strange, let us look at what to do about that. 

> 
>    sessions to group the RTP streams.  The choice suitable for one
>    reason, might not be the choice suitable for another reason.  The
> 
> nit: is it the "reason" or the "situation"/"scenario" that is relevant
> here?

Scenario I would say. 

> 
> Section 3.2
> 
>    RTP streams.  Figure 1 outlines the process of demultiplexing
>    incoming RTP streams starting already at the socket representing
>    reception of one or transport flows, e.g. an UDP destination port.
> 
> nit: "one or more"?

Yes, from an RTP session perspective, multiple sockets / 5-tuple UDP flows etc
can actually be used to provide RTP/RTCP packets. This becomes much more evident
if you look at some of the topologies discussed in RFC 7667. 

So maybe there should be multiple arrows with packets and "Socket(s)" in the box
to make this clearer. 

> 
> I'd consider putting more arrowheads in the downward direction, though
> it's unclear if the resultant vertical expansion of the figure is worth
> it.

You mean into the PB and DEC boxes?  

Let us try this, it would "only" ad two more rows. 

> 
> Section 3.2.1
> 
>    For RTP session separation within a single endpoint, RTP relies on
>    the underlying transport layer, and on the signalling to identify RTP
>    sessions in a manner that is meaningful to the application.  A single
>    endpoint can have one or more transport flows for the same RTP
>    session, and a single RTP session can therefore span multiple
>    transport layer flows even if all endpoints use a single transport
>    layer flow per endpoint for that RTP session.  The signalling layer
> 
> nit: "therefore" seems misplaced; the relevant linkage in the logic
> seems to be that there could be one transport flow per endpoint pair
> (as we don't require multicast usage).

Yes, I think just deleting "therefore" appear without downsides. 


> 
>    Independently if an endpoint has one or more IP addresses, a single
> 
> nit: I'm not sure if "independently" is the right conjunctive adverb,
> but whatever is used it should have a comma after it.
> 

Will look at it. 

> Section 3.2.2
> 
>    Endpoints that are both RTP sender and RTP receiver use the same SSRC
>    in both roles.
> 
> If I have multiple SSRCs as a sender, do I have freedom to vary amongst
> them when acting as an RTP receiver (or RTCP sender)?

So, they are all RTP receiver and per default they all need to report on
reception etc and be RTCP sender. We have an RFC 8108 that clarifies this
handling. There is also an protocol extension that allows an optimization in
this case, see drat-ietf-avtcore-rtp-multi-stream-optimisation (stuck in cluster
238). 


> 
>    SSRC values are unique across RTP sessions.  For the RTP
>    retransmission [RFC4588] case it is recommended to use explicit
>    binding of the source RTP stream and the redundancy stream, e.g.
>    using the RepairedRtpStreamId RTCP SDES item [I-D.ietf-avtext-rid].
> 
> Some indication of whether this recommendation is new in this document
> or "long-standing" might be worthwhile.

Yes, so this is new as the RID mechanism is recently new (result of RTCWeb) and
therefore can not be generally expected to be available. We can indicate this. 

> 
>    Note that RTP sequence number and RTP timestamp are scoped by the
>    SSRC and thus specific per RTP stream.
> 
> And now I wonder about the behavior of these two in the retransmission
> case from the previous paragraph.  But that's likely off-topic for this
> document :)

For RFC 4588 retransmission, the retransmissions are done on a seperate stream,
with the orignal sequence number indicated in the RTP payload. 

> 
>    An endpoint that generates more than one media type, e.g.  a
>    conference participant sending both audio and video, need not (and,
>    indeed, should not) use the same SSRC value across RTP sessions.
> 
> I'm not sure I understand why the guidance on cross-session behavior is
> specific to the multi-media-type case.

No, it applies to primary and redundancy stream similarly. However, here might
there be legacy. 

> 
>    RTCP compound packets containing the CNAME SDES item is the
>    designated method to bind an SSRC to a CNAME, effectively cross-
>    correlating SSRCs within and between RTP Sessions as coming from the
>    same endpoint.  The main property attributed to SSRCs associated with
>    the same CNAME is that they are from a particular synchronisation
>    context and can be synchronised at playback.
> 
> I am curious (but not necessarily needing to see in this document) where
> the security considerations regarding CNAME spoofing (where an attacker
> claims the CNAME of an existing source to attempt to be treated as part
> of the victim's output) are discussed.

So I think there are a number of security issues that might not be as well
discussed as they should be. RTP unfortunately has quite a vunerable interals,
and also the fact that the most used security mechanisms don't provide true
source authentication, only, authenticating it to the group of keyed users makes
this potentially problematic. 

RFC 7941 do mention this issue, but does not go further than say that you deploy
source authentication based on your needs. The PERC documents likely have some
additional discussion of this. Middleboxes have an interesting role here as they
can be used as defense against this spofing by tracking which endpoints that own
which SSRCs and refue to accept multiple endpoint to inject SSRC bound to the
same SDES CNAME. However, there are of course some use cases, like FEC where
third party actors need to add SSRCs with same CNAME. 



> 
> Section 3.2.4
> 
>    The RTP payload type is scoped by the sending endpoint within an RTP
>    session.  PT has the same meaning across all RTP streams in an RTP
>    session.  All SSRCs sent from a single endpoint share the same
> 
> I'd suggest "same meaning across all RTP streams from that sender",
> though given the previous (and next!) sentence it is probably not
> strictly necessary.

So there subtle thing here. Due to SDP Offer/answer there even in star multi-
party the configuration is actually done per receiver endpoint per RTP session.
This can easily forces RTP middleboxes to perform PT translation due to that
each endpoint in an RTP session actually have its own numbering schemem of
equivalent PT configurations. But, there is a point to actually state that PTs
are valid on RTP session level and trying to configure them with a SSRC scope is
not without issues and should be avoided. 


> 
> Section 3.3
> 
>    o  Does my communication peer support RTP as defined with multiple
>       SSRCs per RTP session?
> 
> There's potentially some ambiguity about grouping/binding in this text.
> 
>    gateway, for example a need to monitor the RTP streams.  Beware that
>    changing the stream transport characteristics in the translator, can
>    require thorough understanding of the application logic, specifically
>    any congestion control or media adaptation to ensure appropriate
>    media handling.
> 
> While congestion control and media adaptation are important, they're
> hardly the only things that a middlebox might need to know about (but
> fail to implement properly, which is the point of this warning).  I'd
> suggest rephrasing to be a range/selection rather than drilling into
> specific points (e.g., "from congestion control to media adaptation or
> particular application-layer semantics").

I think it sounds reasonable, will see what my co-authors if they have
additional feedback. 

> 
>    Within the uses enabled by the RTP standard the point to point
>    topology can contain one to many RTP sessions with one to many media
>    sources per session, each having one or more RTP streams per media
>    source.
> 
> micro-nit: "one to many", "one to many", "one or more" ruins the parallelism
> :)

Thanks :-)

> 
> 3.4.3
> 
>    o  Signalling based (SDP)
> 
> "e.g., SDP", no?


Yes.
> 
>    An RTP/RTCP-based grouping solution is to use the RTCP SDES CNAME to
>    bind related RTP streams to an endpoint or to a synchronization
>    context.  For applications with a single RTP stream per type (media,
>    source or redundancy stream), CNAME is sufficient for that purpose
>    independent if one or more RTP sessions are used.  However, some
> 
> nit: "independent if" doesn't parse properly; maybe "independently of
> whether"?

Yes, whether should do it. 

> 
>    independent if one or more RTP sessions are used.  However, some
>    applications choose not to use CNAME because of perceived complexity
>    or a desire not to implement RTCP and instead use the same SSRC value
>    to bind related RTP streams across multiple RTP sessions.  RTP
> 
> [It's interesting to see this noted, given that we talk about how if you
> don't implement RTCP you're not actually using RTP, just the RTP packet
> formats; and how we discuss that reusing the same SSRC value across
> multiple RTP sessions can be risky.  That said, this should not
> discourage us from documenting what implementations actually do...]

So RTCP implementation is usually done to today, but many early voice only usage
skipped it. So it is background why things ended up like they are. 

> 
> Section 3.4.4
> 
>    There exist a number of Forward Error Correction (FEC) based schemes
>    for how to reduce the packet loss of the original streams.  Most of
> 
> nit: I think this is either "mitigate packet loss" or "reduce lost data
> from a media stream", but "reduce packet loss" it is not.

Yes, will address. 

> 
>    Using multiple RTP sessions supports the case where some set of
>    receivers might not be able to utilise the FEC information.  By
>    placing it in a separate RTP session and if separating RTP sessions
>    on transport level, FEC can easily be ignored already on transport
>    level, without considering any RTP layer information.
> 
> nit: "the transport level"

Ok. 

> 
> Section 4.1.2
> 
>    BUNDLE [I-D.ietf-mmusic-sdp-bundle-negotiation], it is possible for
>    the RTP translator to map the RTP streams between both sides using
>    some method, e.g. if the number and order of SDP "m=" lines between
>    both sides are the same.  There are also challenges with SSRC
> 
> (There's nothing in SDP that requires that to be the case, though, this
> would merely be a "convenient property shared by the two applications'
> behavior"?)

So part is implied meaning of number and order of m= lines for particular
applications / systems. This gets interesting when you interconnect such systems
with a translator. 

> 
> Section 4.1.3
> 
>    For applications that use any security mechanism, e.g., in the form
>    of SRTP, the gateway needs to be able to decrypt and verify source
>    integrity of the incoming packets, and re-encrypt, integrity protect,
>    and sign the packets as peer in the other application's security
>    context.  This is necessary even if all that's needed is a simple
> 
> Can you clarify what is meant by "sign the packets as peer" here?  Is it
> implying that the terminating gateway needs to have credentials so as to
> impersonate both "real" participants to the other?

Yes, they need to be a trusted party by both communicating peers in this case.
Unless you use PERC all RTP level middleboxes will have to have access to the
security context. 

> (Also, nit: "sign packets as the peer" might be a more grammatical
> wording, as "peer" needs an article.)

Ok. 

> 
>    If one uses security functions, like SRTP, and as can be seen from
>    above, they incur both additional risk due to the requirement to have
>    the gateway in the security association between the endpoints (unless
>    the gateway is on the transport level), and additional complexities
>    in form of the decrypt-encrypt cycles needed for each forwarded
>    packet.  SRTP, due to its keying structure, also requires that each
> 
> This sentence is pretty complicated.  Even in the first part, I'm not
> sure what "they" in "they incur both" refers to...it seems that the risk
> is to the participant(s) ("one") rather than the "security functions"
> themselves...

I think "they" equals gateways. Let us attempt to reformulate. 

> 
>    RTP session needs different master keys, as use of the same key in
>    two RTP sessions can for some ciphers result in two-time pads that
>    completely breaks the confidentiality of the packets.
> 
> I'd suggest discussing this as "reuse of a one-time pad" rather than a
> "two-time pad".

Ok

> 
> Section 4.1.4
> 
>    Endpoints that aren't updated to handle multiple streams following
>    these recommendations can have issues with participating in RTP
>    sessions containing multiple SSRCs within a single session, such as:
> 
> Talking about endpoints being "updated [...] following these
> recommendations" also makes me wonder whether an Updates relationship to
> 3550 or other document(s) would be appropriate.

So this being an informational document targeting Application designers using
RTP and the intention is not really to change things in this document. There do
exist a number of documents that will update RFC 3550. When Cluster 238 is
processed RFC 3550 will have a number of Updated RFCs. 

So, I still think the answer is no to have this document update RFC 3550. 

> 
> Section 4.2.2
> 
>       the, in most cases 2-3, additional flows.  However, packet loss
>       causes extra delays, at least 100 ms, which is the minimal
>       retransmission timer for ICE.
> 
> Doesn't RFC 8445 say 500 ms, not 100?

Yes, your right. Probably wrote this during the discussion in the ICE WG and
never reflected over the final consensus in the document. Will correct. 

> 
>    Deep Packet Inspection and Multiple Streams:  Firewalls differ in how
>       deeply they inspect packets.  There exist some risk that deeply
>       inspecting firewalls will have similar legacy issues with multiple
>       SSRCs as some RTP stack implementations.
> 
> Re "some risk", can we say that this has definitely been seen in the
> wild at least once?

I can't point to a particular case from the top of my head. But I have not been
much in the day to day running RTP applications. However, I do assume this have
been an issue. Let me check. 

> 
> Section 4.3.1
> 
>    only premium users are allowed to access.  The mechanism preventing a
>    receiver from getting the high quality stream can be based on the
>    stream being encrypted with a key that user can't access without
>    paying premium, using the key-management to limit access to the key.
> 
> nit: there seems to be a missing word here ("paying a premium"?)

Yes. 

> 
>    SRTP [RFC3711] has no special functions for dealing with different
>    sets of master keys for different SSRCs.  The key-management
>    functions have different capabilities to establish different sets of
>    keys, normally on a per-endpoint basis.  For example, DTLS-SRTP
>    [RFC5764] and Security Descriptions [RFC4568] establish different
>    keys for outgoing and incoming traffic from an endpoint.  This key
>    usage has to be written into the cryptographic context, possibly
>    associated with different SSRCs.
> 
> I don't really understand what this paragraph is trying to say.

I think it tries to warn that there are a descrepancy between how SRTP is
defined, the implementations capabilities when combined with particular key-
manangement and the full set of RTP's flexibilities to create an RTP Session. 

Will see if we can clarify this a bit. 

> 
> Section 4.3.2
> 
>    Transport translator-based sessions and multicast sessions, can
> 
> This doesn't seem to match the terminology we used in § 4.1.2.
> (This terminology appears a couple other times, later.)

These are RFC 7667 terms. We likely should use the RFC 7667 short hand to make
that clearer. 

> 
> Section 5.1
> 
>    h.  If the applications need finer control over which session
>        participants that are included in different sets of security
>        associations, most key-management will have difficulties
>        establishing such a session.
> 
> nit: the grammar is off, here (remove "that" and use "key-management
> techniques"?)

Ok. 

> 
> Section 5.3
> 
>    2.  The application can indicate its usage of the RTP streams on RTP
>        session level, in case multiple different usages exist.
> 
> nit: is this "in case" (precautionary) or "in the case when"
> (descriptive)?

The later, as each RTP session can be bound to a particular usage. 

> 
> Section 6
> 
>    Transport Support Extensions:  When defining new RTP/RTCP extensions
> 
> nit: should we swap the order of "Support" and "Extensions"?

Or "Extensions for Transport Support". Will address. 

> 
> Section 11.1
> 
> RFC 3830 does not feel like it needs to be normative.

Agree, its usage is an example. 

> 
> Appendix A
> 
>    4.   Sending multiple streams in the same sequence number space makes
>         it impossible to determine which payload type, which stream a
>         packet loss relates to, and thus to which stream to potentially
>         apply packet loss concealment or other stream-specific loss
>         mitigation mechanisms.
> 
> I don't think this parses properly (around "which payload type,")

Will attempt to address.

> 
> Appendix B.1
> 
>    One aspect of the existing signalling is that it is focused on RTP
>    sessions, or at least in the case of SDP the media description.
> 
> nit: I think there's an extra or missing word here (around "the media
> description").

Yes, something is strange. 

maybe

... or in the case of SDP, the media descriptions concept. 

> 
>    o  Bitrate/Bandwidth exist today only at aggregate or as a common
>       "any RTP stream" limit, unless either codec-specific bandwidth
>       limiting or RTCP signalling using TMMBR is used.
> 
> Should we have a reference for TMMBR?

Yes, it is defined in RFC 5104. 

> 
> Appendix B.3
> 
>    RTP streams being transported in RTP has some particular usage in an
>    RTP application.  This usage of the RTP stream is in many
> 
> nit: singular/plural mismatch "has"/"streams"

Thanks. 




Cheers

Magnus Westerlund 


----------------------------------------------------------------------
Networks, Ericsson Research
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Torshamnsgatan 23           | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------