[rtcweb] JSEP Section 6

Bernard Aboba <bernard.aboba@gmail.com> Thu, 27 October 2016 00:54 UTC

Return-Path: <bernard.aboba@gmail.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 59E7C1295AD for <rtcweb@ietfa.amsl.com>; Wed, 26 Oct 2016 17:54:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8knnDjpZCa4b for <rtcweb@ietfa.amsl.com>; Wed, 26 Oct 2016 17:54:33 -0700 (PDT)
Received: from mail-vk0-x234.google.com (mail-vk0-x234.google.com [IPv6:2607:f8b0:400c:c05::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BB895129406 for <rtcweb@ietf.org>; Wed, 26 Oct 2016 17:54:32 -0700 (PDT)
Received: by mail-vk0-x234.google.com with SMTP id d65so16430332vkg.0 for <rtcweb@ietf.org>; Wed, 26 Oct 2016 17:54:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc; bh=SGXGUs3zxx74AqX4q44RBuArGrcxaIx/IdTBsfRXx1g=; b=y0gOYuIJJrtMPi2ohoQVaAagi1wkB9dihVCri9VkSWb0Pn3aiMR2Gwx5nHsS2RmM7G sdbbJY/5XfX6iZbeeBvyU2TWIgqh5+cQsU5Ry5+BlzAxyaGeEO5yYE6tyq0E1r/o/oMr lS00/yUNy0wll/FyfsdxrtAaWvOAclcWy8PsCiVdcNflLxqVYHdZwZVKwH9dxRDGQJ// 9LNQLW/STMT60pQO0yv/tUkSzCCxVIK8mLbsGviBB9BQRErZSCK487o9C1cWtupYKePH BqSxFv4YKBr6tVrHhXRltCGzmZSWdl9/teQB61oupGT9AakN+8qrve/Ep4G/B3ngIMiz cROg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=SGXGUs3zxx74AqX4q44RBuArGrcxaIx/IdTBsfRXx1g=; b=BLL+NKbpv6PMgNJbkAhkMcXXXtwItknaAxV3/hiOXmR87KjHOqqmWPHPHvffaajska 3jhJqGjAiaaGu5pKsB++PloUWL56ESqv2MPoKBvUKAYJ3H/JVgSa+aJUH/gO9oaciNlK WEKBcWafvWwDdtOHE1+GEroic7XBB9y1+1RelzhtWKH97Pm+OApbmpHNaT7NS2So8xBx /CSrrcaYhPMa9Ii4fih9WliySfJHgpE2VHVHBuJvqj9iLgZogEnkN6pB2y8PyIX+XMqF hUuoq6dKA3LRdpSVGT9GC2nCSSIz0bJnC8pImnfY5/FQI9m3W7ac0LkBzKXRJtgGr7Ni JwbA==
X-Gm-Message-State: ABUngvcHt3CE0K/ceOBcNzdMZ+trVQBVd1tPn/ZYXtNYFoAgMPRdMNRoGg6Rc2zbf2yUqq1OPGBNkbnQjS44gQ==
X-Received: by 10.31.130.74 with SMTP id e71mr3882565vkd.34.1477529671479; Wed, 26 Oct 2016 17:54:31 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.176.16.88 with HTTP; Wed, 26 Oct 2016 17:54:11 -0700 (PDT)
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Wed, 26 Oct 2016 17:54:11 -0700
Message-ID: <CAOW+2dv1C9z0gFF35kmSgnDkLXaHwkJfVQC8Z+=_BVQ0Z-PX9A@mail.gmail.com>
To: "rtcweb@ietf.org" <rtcweb@ietf.org>
Content-Type: multipart/alternative; boundary="001a114485f436b9fd053fce2f71"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/QIOK7FXTV6Q-gWMwfKxOaAweI8A>
Cc: Robin Raymond <robin@myjoe.com>
Subject: [rtcweb] JSEP Section 6
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Oct 2016 00:54:35 -0000

Some comments.

      Construct a table mapping payload type to RtpReceiver for each
      RtpReceiver configured to receive from this transport and for each
      payload type that RtpReceiver is configured to receive.  The
      payload types of a given RtpReceiver are found in the m= section
      corresponding to that RtpReceiver in the local description.  If
      any payload type could map to more than one RtpReceiver, map to
      the RtpReceiver whose m= section appears earliest in the local
      description.


[BA] In the case where a payload type can map to  more than one
RtpReceiver, what if the earliest m-line is "send-only" or "inactive"?
 Wouldn't you want to map to the  RtpReceiver whose m-line is
"recv-only" or "send-recv" and is earliest?


      If the packet's payload type is in the payload type table, update
      the the incoming SSRC mapping table to include an entry that maps
      the packet's SSRC to the RtpReceiver for that payload type.  In
      addition, deliver the packet to the associated RtpReceiver and
      stop.


[BA] I believe that PT-based SSRC latching breaks two of Cullen's
proposed use cases (see:
https://mailarchive.ietf.org/arch/msg/rtcweb/cvcpy-Rnj4ntL66haNnKHy2_Yvw
):


Codec change, case 1: The PTs are all unique, and no SSRCs were signaled in
SDP  There is no RID, MID, FEC or RTX. Sender switches codecs, and the PT
changes (but SSRC stays the same).  The packet goes to the receiver that
matches the new PT.

Codec change, case 2:  The PTs are all unique and SSRCs are signaled in
SDP.  There is no RID, MID, FEC or RTX. Sender switches codecs and the PT
changes (but SSRC stays the same).  SSRC does not match any signaled ones.
The packet goes to the receiver that matches the new PT.

[BA] For the RTCP routing, it is more clear to use the RFC 3550 terms
for the various SSRC fields.  For exchange, change:

      "If the packet is of type SR, and the sender SSRC for the packet is
      found in the incoming SSRC table, deliver a copy of the packet to
      the RtpReceiver associated with that SSRC.  In addition, for each
      report block in the report whose SSRC is found in the outgoing
      SSRC table, deliver a copy of the RTCP packet to the RtpSender
      associated with that SSRC."

To:


      "If the packet is of type SR, and the "SSRC of sender" for the packet is
      found in the incoming SSRC table, deliver a copy of the packet to
      the RtpReceiver associated with that SSRC.  In addition, for each
      report block in the report whose "SSRC of source" is found in the outgoing
      SSRC table, deliver a copy of the RTCP packet to the RtpSender
      associated with that SSRC."



[BA] Change:


      "If the packet is of type RR, for each report block in the packet
      whose SSRC is found in the outgoing SSRC table, deliver a copy of
      the RTCP packet to the RtpSender associated with that SSRC."


To:


      "If the packet is of type RR, for each report block in the packet
      whose "SSRC of source" is found in the outgoing SSRC table,
deliver a copy of
      the RTCP packet to the RtpSender associated with that SSRC."



[BA] The RTCP SDES packet has no "SSRC of packet sender" field, so change:


      "If the packet is of type SDES, and the sender SSRC for the packet
      is found in the incoming SSRC table, deliver the packet to the
      RtpReceiver associated with that SSRC.  In addition, for each
      chunk in the packet that contains a MID that is in the table
      mapping MID to RtpReceiver, update the incoming SSRC mapping table
      to include an entry that maps the SSRC for that chunk to the
      RtpReceiver associated with that MID.  (This case can occur when
      RTCP for a source is received before any RTP packets.)"


To:


      "If the packet is of type SDES, for each chunk containing

      an "SSRC/CSRC" field found in the incoming SSRC table,

      deliver the packet to the RtpReceiver associated with that SSRC.

      In addition, for each chunk in the packet that contains a MID
that is in the table
      mapping MID to RtpReceiver, update the incoming SSRC mapping table
      to include an entry that maps the SSRC for that chunk to the
      RtpReceiver associated with that MID. (This case can occur when
      RTCP for a source is received before any RTP packets.)"


[BA] Change:



      "If the packet is of type BYE, for each SSRC indicated in the
      packet that is found in the incoming SSRC table, deliver a copy of
      the packet to the RtpReceiver associated with that SSRC."


To:



      "If the packet is of type BYE, for each "SSRC/CSRC" indicated in the
      packet that is found in the incoming SSRC table, deliver a copy of
      the packet to the RtpReceiver associated with that SSRC."


[BA] Change:


      "If the packet is of type RTPFB or PSFB, as defined in [RFC4585
<https://tools.ietf.org/html/rfc4585>],
      and the media source SSRC for the packet is found in the outgoing
      SSRC table, deliver the packet to the RtpSender associated with
      that SSRC."


To:


      "If the packet is of type RTPFB or PSFB, as defined in [RFC4585
<https://tools.ietf.org/html/rfc4585>],
      and the "SSRC of media source" for the packet is found in the outgoing
      SSRC table, deliver the packet to the RtpSender associated with
      that SSRC."


[BA] Since FIR feedback messages can contain multiple FCI fields, I think you

need to add the following text (see RFC 5104 Section 4.3.1.1):


      "In addition, for FIR feedback messages, as defined in [RFC5104],

      for each "SSRC" indicated in an FCI entry, deliver a copy of the

      packet to the RtpSender associated with that SSRC.