Negotiating Media Multiplexing Using the Session Description Protocol (SDP)

Note: This ballot was opened for revision 04 and is now closed.

Murray Kucherawy Yes

Comment (2021-08-21 for -04)
Thanks to Claudio Allocchio for the ARTART review.

Alvaro Retana No Objection

Benjamin Kaduk No Objection

Comment (2021-08-23 for -04)
The errata report eid 6437 should probably be marked as "Verified" (or
at least something other than "Reported") since it is being fixed in
this update.

Since I reviewed draft-ietf-mmusic-sdp-bundle-negotiation before it
became RFC 8843, I don't have much left to say about this document.  I
did look over the diffs between the version I reviewed, RFC 8843 itself,
and this version; there was one point (mentioning the URI allocation for
the RTP SDES header extension in the main body of the document) that got
some proposed text in email but didn't seem to make it into this
https// .
It's a quite minor point, so not a problem if the change is not made.

Some other remarks from looking over the document as a whole:

Section 7.2.2

Perhaps s/The example/The following example/ (twice), since there are
two examples in this section.

Section 7.3.1

                                          If there are no more
   identification-tags in the identification-tag list, the answerer MUST
   NOT create the BUNDLE group.  Unless the answerer rejects the whole
   offer, the answerer MUST apply the answerer procedures for moving an
   "m=" section out of a BUNDLE group (Section 7.3.2) or rejecting an
   "m=" section within a BUNDLE group (Section 7.3.3) to every bundled
   "m=" section in the offer when creating the answer.

Just to confirm: the last sentence only applies in the "no more
identification-tags" case described by the preceding sentence?  I wonder
if it's worth adding a couple words to solidify that connection.

Section 7.3.3

   When an answerer wants to reject a bundled "m=" section in an answer,
   it MUST first check the following criterion:

   *  In the corresponding offer, the "m=" section is the offerer-tagged
      "m=" section.

The definition of "offerer-tagged "m=" section" is doing some heavy
lifting here, by requiring that it be in a *subsequent* offer.  I wonder
if this is worth calling out here, since the defined term also has a
natural reading as a generic phrase, which would give a different

Section 7.4

   When an offerer receives an answer, if the answer contains a BUNDLE
   group, the offerer MUST check that any bundled "m=" section in the
   answer was indicated as bundled in the corresponding offer.  [...]

By my reading, this doesn't require the offerer to check that the "m="
sections in the answer are still in the same BUNDLE group that they were
in in the offer (if there are multiple BUNDLE groups active).


   In an initial BUNDLE offer, if the suggested offerer-tagged "m="
   section contained an SDP 'rtcp-mux-only' attribute, the "m=" section
   was for RTP-based media; thus, the answerer does not accept the "m="
   section in the created BUNDLE group, and the answerer MUST move the
   "m=" section out of the BUNDLE group (Section 7.3.2); include the
   attribute in the moved "m=" section and enable RTP/RTCP multiplexing
   for the media associated with the "m=" section; or reject the "m="
   section (Section 7.3.3).

I'm having a hard time parsing this (long!) sentence.  The first
semicolon seems to be used to join related sentences, but the latter two
seem to be acting as list separators (where the list members have
internal commas), and that's a little jarring to have the different
semicolon uses in the same sentence.  Additionally, if I keep that
parsing, this seems to say that all "m=" sessions for RTP-based media
cannot be included in the BUNDLE group by the answerer, which is quite
surprising.  If we applied s/thus,/thus, if/ and s/, and/,/, then this
parsing would make more sense to me, but I don't know if that would
provide the intended semantics.

Section 16

Did we consider reframing the IANA considerations along the lines of
"update the existing registration to use this document as a reference"?
Doing that makes it a little easier to understand the history of the
registry entries, though needing the history is admittedly a rather
uncommon case.

Section 17

It seems that the logic for routing bundled RTP/RTCP messages to the
proper media stream processor could be quite complex, and complex
systems are potentially prone to error, but I'm not really sure there's
a useful way to acknowledge that in the security considerations here.

Erik Kline No Objection

Francesca Palombini No Objection

Comment (2021-08-25 for -04)
Thank you for the work on this document. 

Thanks to Claudio Allocchio for the ART ART review: I agree with him that mentioning IETF 110 in Section 1.4 seem strange, and I would suggest rewording to remove that. Additionally in the same section, mentioning erratas by their numbers does not help a reader who is not familiar with the IETF errata reporting system: instead, I would suggest to rephrase so to give a high level summary to the reader about what these erratas were about.

Below, two nits I happened to notice.


## Nits

1. ----

   *  In a subsequent offer, or in an answer (initial of subsequent),

FP: s/of/or

2. ----

   If the
   answer wants to move the "m=" section out of the BUNDLE group, it
   will have to first accept it 

FP: s/answer/answerer

Lars Eggert No Objection

Comment (2021-08-24 for -04)
Document obsoletes RFC8843, but does not cite it as a reference.

All comments below are about very minor potential issues that you may choose to
address in some way - or ignore - as you see fit. Some were flagged by
automated tools (via, so there
will likely be some false positives. There is no need to let me know what you
did with these suggestions.

Section 9.1. , paragraph 6, nit:
> er for an offerer and answerer to always be able to associate an RTP stream w
>                                   ^^^^^^^^^
The adverb "always" usually goes after the verb "be".

Section 9.1.1. , paragraph 2, nit:
> ons can implement RTP stacks in many different ways. The algorithm below deta
>                                 ^^^^^^^^^^^^^^
Consider using "many".

Section 9.1.1. , paragraph 7, nit:
> n, then the RTP stream is not decoded and the payload data is discarded. * I
>                                      ^^^^
Use a comma before "and" if it connects two independent clauses (unless they
are closely connected and short).

Section 9.1.1. , paragraph 9, nit:
> erwise, the RTP stream is not decoded and the payload data is discarded. * I
>                                      ^^^^
Use a comma before "and" if it connects two independent clauses (unless they
are closely connected and short).

Section 15. , paragraph 4, nit:
> s, flows over the network, with the exception of the usage of the MID SDES i
>                            ^^^^^^^^^^^^^^^^^^^^^
Consider using "except" or "except for".

Section 15. , paragraph 7, nit:
> p counter, and SHOULD be 3 bytes or less to allow them to efficiently fit in
>                                     ^^^^
Did you mean "fewer"? The noun bytes is countable.

Section 19.1. , paragraph 13, nit:
> d in RFC 3605, yet acted this way. Further assume that the B2BUA was configur
>                                    ^^^^^^^
A comma may be missing after the conjunctive/linking adverb "Further".

Obsolete reference to RFC4566, obsoleted by RFC8866 (this may be on purpose).

These URLs point to, which is being deprecated:

Martin Vigoureux No Objection

Robert Wilton No Objection

Roman Danyliw No Objection

Comment (2021-08-23 for -04)
No email
send info
Thanks to Derrell Piper for the SECDIR review.

Warren Kumari No Objection

Comment (2021-08-24 for -04)
No email
send info
I found this document to be very readable, even for someone with no SDP knowledge. I don't have much in the way to add, other than that it seems useful...
[ You are welcome for this deeply insightful comment :-) ]

Zaheduzzaman Sarker No Objection

Comment (2021-08-25 for -04)
Thanks a lot for the efforts put into this document. 

I don't have much to add other than some minor comments (would be nice if addressed but feel free to ignore them ) below-

  * I think the paragraph below is best fitted in the section 5 due to the use of normative language.( I also understand this might be a matter of taste.)
      "A given BUNDLE address:port MUST only be associated with a single
   BUNDLE group.  If an SDP offer or SDP answer (hereafter referred to
   as "offer" and "answer") contains multiple BUNDLE groups, the
   procedures in this specification apply to each group independently.
   All RTP-based bundled media associated with a given BUNDLE group
   belong to a single RTP session [RFC3550]."

  * The title for section 7.2 is kind of misleading. This section is about initial BUNDLE offer, not really initial SDP offer and there is a difference between the initial offer and initial BUNDLE offer. 
          Suggestion:  s/Generating the Initial SDP Offer/ Generating the Initial BUNDLE Offer.
    The same comment applies for section 7.2.2

Éric Vyncke No Objection