Skip to main content

A Mixer Control Package for the Media Control Channel Framework
draft-ietf-mediactrl-mixer-control-package-14

The information below is for an old version of the document that is already published as an RFC.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 6505.
Authors Scott McGlashan , Tim J. Melanchuk , Chris Boulton
Last updated 2015-10-14 (Latest revision 2011-01-06)
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Proposed Standard
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state WG Document
Document shepherd (None)
IESG IESG state Became RFC 6505 (Proposed Standard)
Action Holders
(None)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD Robert Sparks
IESG note ** No value found for 'doc.notedoc.note' **
Send notices to (None)
draft-ietf-mediactrl-mixer-control-package-14
Internet Engineering Task Force                             G. Fairhurst
Internet-Draft                                                  T. Jones
Updates: 4821, 4960, 6951, 8085, 8261 (if         University of Aberdeen
         approved)                                             M. Tuexen
Intended status: Standards Track                            I. Ruengeler
Expires: 24 September 2020                                    T. Voelker
                                 Muenster University of Applied Sciences
                                                           23 March 2020

     Packetization Layer Path MTU Discovery for Datagram Transports
                  draft-ietf-tsvwg-datagram-plpmtud-17

Abstract

   This document describes a robust method for Path MTU Discovery
   (PMTUD) for datagram Packetization Layers (PLs).  It describes an
   extension to RFC 1191 and RFC 8201, which specifies ICMP-based Path
   MTU Discovery for IPv4 and IPv6.  The method allows a PL, or a
   datagram application that uses a PL, to discover whether a network
   path can support the current size of datagram.  This can be used to
   detect and reduce the message size when a sender encounters a packet
   black hole (where packets are discarded).  The method can probe a
   network path with progressively larger packets to discover whether
   the maximum packet size can be increased.  This allows a sender to
   determine an appropriate packet size, providing functionality for
   datagram transports that is equivalent to the Packetization Layer
   PMTUD specification for TCP, specified in RFC 4821.

   The document updates RFC 4821 to specify the method for datagram PLs,
   and updates RFC 8085 as the method to use in place of RFC 4821 with
   UDP datagrams.  Section 7.3 of RFC4960 recommends an endpoint apply
   the techniques in RFC 4821 on a per-destination-address basis.  RFC
   4960, RFC 6951 and RFC 8261 are updated to recommend that SCTP, SCTP
   encapsulated in UDP and SCTP encapsulated in DTLS use the method
   specified in this document instead of the method in RFC 4821.

   The document also provides implementation notes for incorporating
   Datagram PMTUD into IETF datagram transports or applications that use
   datagram transports.

   When published, this specification updates RFC 4960, RFC 4821, RFC
   8085 and RFC 8261.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

Fairhurst, et al.       Expires 24 September 2020               [Page 1]
Internet-Draft                  DPLPMTUD                      March 2020

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 24 September 2020.

Copyright Notice

   Copyright (c) 2020 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Simplified BSD License text
   as described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4
     1.1.  Classical Path MTU Discovery  . . . . . . . . . . . . . .   4
     1.2.  Packetization Layer Path MTU Discovery  . . . . . . . . .   6
     1.3.  Path MTU Discovery for Datagram Services  . . . . . . . .   7
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   8
   3.  Features Required to Provide Datagram PLPMTUD . . . . . . . .  10
   4.  DPLPMTUD Mechanisms . . . . . . . . . . . . . . . . . . . . .  13
     4.1.  PLPMTU Probe Packets  . . . . . . . . . . . . . . . . . .  13
     4.2.  Confirmation of Probed Packet Size  . . . . . . . . . . .  14
     4.3.  Black Hole Detection  . . . . . . . . . . . . . . . . . .  15
     4.4.  The Maximum Packet Size (MPS) . . . . . . . . . . . . . .  16
     4.5.  Disabling the Effect of PMTUD . . . . . . . . . . . . . .  17
     4.6.  Response to PTB Messages  . . . . . . . . . . . . . . . .  17
       4.6.1.  Validation of PTB Messages  . . . . . . . . . . . . .  17
       4.6.2.  Use of PTB Messages . . . . . . . . . . . . . . . . .  18
   5.  Datagram Packetization Layer PMTUD  . . . . . . . . . . . . .  20
     5.1.  DPLPMTUD Components . . . . . . . . . . . . . . . . . . .  20
       5.1.1.  Timers  . . . . . . . . . . . . . . . . . . . . . . .  21
       5.1.2.  Constants . . . . . . . . . . . . . . . . . . . . . .  21
       5.1.3.  Variables . . . . . . . . . . . . . . . . . . . . . .  22

Fairhurst, et al.       Expires 24 September 2020               [Page 2]
Internet-Draft                  DPLPMTUD                      March 2020

       5.1.4.  Overview of DPLPMTUD Phases . . . . . . . . . . . . .  23
     5.2.  State Machine . . . . . . . . . . . . . . . . . . . . . .  25
     5.3.  Search to Increase the PLPMTU . . . . . . . . . . . . . .  28
       5.3.1.  Probing for a larger PLPMTU . . . . . . . . . . . . .  28
       5.3.2.  Selection of Probe Sizes  . . . . . . . . . . . . . .  29
       5.3.3.  Resilience to Inconsistent Path Information . . . . .  29
     5.4.  Robustness to Inconsistent Paths  . . . . . . . . . . . .  30
   6.  Specification of Protocol-Specific Methods  . . . . . . . . .  30
     6.1.  Application support for DPLPMTUD with UDP or UDP-Lite . .  30
       6.1.1.  Application Request . . . . . . . . . . . . . . . . .  31
       6.1.2.  Application Response  . . . . . . . . . . . . . . . .  31
       6.1.3.  Sending Application Probe Packets . . . . . . . . . .  31
       6.1.4.  Initial Connectivity  . . . . . . . . . . . . . . . .  31
       6.1.5.  Validating the Path . . . . . . . . . . . . . . . . .  31
       6.1.6.  Handling of PTB Messages  . . . . . . . . . . . . . .  31
     6.2.  DPLPMTUD for SCTP . . . . . . . . . . . . . . . . . . . .  32
       6.2.1.  SCTP/IPv4 and SCTP/IPv6 . . . . . . . . . . . . . . .  32
         6.2.1.1.  Initial Connectivity  . . . . . . . . . . . . . .  32
         6.2.1.2.  Sending SCTP Probe Packets  . . . . . . . . . . .  32
         6.2.1.3.  Validating the Path with SCTP . . . . . . . . . .  33
         6.2.1.4.  PTB Message Handling by SCTP  . . . . . . . . . .  33
       6.2.2.  DPLPMTUD for SCTP/UDP . . . . . . . . . . . . . . . .  33
         6.2.2.1.  Initial Connectivity  . . . . . . . . . . . . . .  33
         6.2.2.2.  Sending SCTP/UDP Probe Packets  . . . . . . . . .  34
         6.2.2.3.  Validating the Path with SCTP/UDP . . . . . . . .  34
         6.2.2.4.  Handling of PTB Messages by SCTP/UDP  . . . . . .  34
       6.2.3.  DPLPMTUD for SCTP/DTLS  . . . . . . . . . . . . . . .  34
         6.2.3.1.  Initial Connectivity  . . . . . . . . . . . . . .  34
         6.2.3.2.  Sending SCTP/DTLS Probe Packets . . . . . . . . .  34
         6.2.3.3.  Validating the Path with SCTP/DTLS  . . . . . . .  34
         6.2.3.4.  Handling of PTB Messages by SCTP/DTLS . . . . . .  35
     6.3.  DPLPMTUD for QUIC . . . . . . . . . . . . . . . . . . . .  35
       6.3.1.  Initial Connectivity  . . . . . . . . . . . . . . . .  35
       6.3.2.  Sending QUIC Probe Packets  . . . . . . . . . . . . .  35
       6.3.3.  Validating the Path with QUIC . . . . . . . . . . . .  36
       6.3.4.  Handling of PTB Messages by QUIC  . . . . . . . . . .  36
   7.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  36
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  36
   9.  Security Considerations . . . . . . . . . . . . . . . . . . .  36
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  38
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  38
     10.2.  Informative References . . . . . . . . . . . . . . . . .  39
   Appendix A.  Revision Notes . . . . . . . . . . . . . . . . . . .  40
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  45

Fairhurst, et al.       Expires 24 September 2020               [Page 3]
Internet-Draft                  DPLPMTUD                      March 2020

>
    </event>
   </mscmixer>

6.2.2.  Bridging connections

   The mixer package can be used to join connections to one another.  In
   a call center scenario, for example, this package can be used to set
   up and modify connections between a caller, agent and supervisor.

   A caller is joined to an agent with bi-directional audio:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="caller:001" id2="agent:002">
     <stream media="audio" direction="sendrecv"/>
    </join>
   </mscmixer>

   If the MS is able to establish this connection, then it would send a
   200 response:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="200"/>
   </mscmixer>

   Now assume that the AS wants a supervisor to listen into the agent

McGlashan, et al.         Expires July 10, 2011                [Page 82]
Internet-Draft            Mixer Control Package             January 2011

   conversation with the caller and provide whispered guidance to the
   agent.  First the AS would send a request to join the supervisor and
   the caller connections:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join  id1="supervisor:003" id2="caller:001">
     <stream media="audio" direction="recvonly"/>
    </join>
   </mscmixer>

   If this request was successful, audio output from the caller
   connection would now be sent to both the agent and the supervisor.

   Second, the AS would send a request to join the supervisor and the
   agent connections:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="supervisor:001" id2="agent:002">
     <stream media="audio" direction="sendrecv"/>
    </join>
   </mscmixer>

   If this request was successful, the audio mixing would occur on both
   the agent and supervisor connections: the agent would hear the caller
   and supervisor, and the supervisor would hear the agent and caller.
   The caller would only hear the agent.  If the MS is unable to join
   and mix connections in this way, it would send a 426 response.

6.2.3.  Video conferencing

   In this example, an audio video-conference is created with the
   loudest participant has the most prominent region in the video
   layout.

   The AS sends a request to create an audio-video conference:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <createconference conferenceid="conf2">
     <audio-mixing type="nbest"/>
     <video-layouts>
      <video-layout min-participants="1"><single-view/></video-layout>
      <video-layout min-participants="2"><dual-view/></video-layout>
      <video-layout min-participants="3"><quad-view/></video-layout>
      <video-layout min-participants="5"><multiple-5x1/></video-layout>
     </video-layouts>
     <video-switch><vas/></video-switch>
    </createconference>
   </mscmixer>

McGlashan, et al.         Expires July 10, 2011                [Page 83]
Internet-Draft            Mixer Control Package             January 2011

   In this configuration, the conference uses a nbest audio mixing
   policy and a <vas/> video switch policy, so that the loudest speaker
   receives the most prominent region in the layout.  Multiple video
   layouts are specified and active one depends on the number of
   participants.

   Assume that 4 participants are already joined to the conference.  In
   that case, the video layout will be quad-view (Figure 6) with the
   most active speaker displayed in region 1.  When a fifth participant
   joins, the video layout automatically switches to a multiple-5x1
   layout (Figure 9), again with the most active speaker in region 1.

   The AS can manipulate which participants are displayed in the
   remaining regions.  For example, it could force an existing
   conference participant to be displayed in region 2:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <modifyjoin id1="1536067209:913cd14c" id2="conf2">
     <stream media="video">
      <region>2</region>
     </stream>
    </modifyjoin>
   </mscmixer>

McGlashan, et al.         Expires July 10, 2011                [Page 84]
Internet-Draft            Mixer Control Package             January 2011

7.  Security Considerations

   As this control package processes XML markup, implementations MUST
   address the security considerations of [RFC3023].

   As a Control Package of the Media Control Channel Framework,
   security, confidentiality and integrity of messages transported over
   the control channel MUST be addressed as described in Section 12 of
   the Media Control channel Framework
   ([I-D.ietf-mediactrl-sip-control-framework]), including Transport
   Level Protection, Control Channel Policy Management and Session
   Establishment.  In addition, implementations MUST address security,
   confidentiality and integrity of User Agent sessions with the MS,
   both in terms of SIP signaling and associated RTP media flow; see
   [I-D.ietf-mediactrl-sip-control-framework] for further details on
   this topic.

   Adequate transport protection and authentication are critical,
   especially when the implementation is deployed in open networks.  If
   the implementation fails to correctly address these issues, it risks
   exposure to malicious attacks, including (but not limited to):

   Denial of Service:  An attacker could insert a request message into
      the transport stream causing specific conferences or join mixers
      on the MS to be destroyed.  For example, <destroyconference
      conferenceid="XXXX">, where the value of "XXXX" could be guessed
      or discovered by auditing active mixers on the MS using an <audit>
      request.  Likewise, an attacker could impersonate the MS and
      insert error responses into the transport stream so denying the AS
      access to package capabilities.

   Resource Exhaustion:  An attacker could insert into the control
      channel new request messages (or modify existing ones) with, for
      instance, <createconference> elements causing large numbers of
      conference mixer resources to be allocated.  At some point this
      will exhaust the number of conference mixers that the MS is able
      to allocate.

   The Media Control Channel Framework permits additional policy
   management, including resource access and control channel usage, to
   be specified at the control package level beyond that specified for
   the Media Control Channel Framework (see Section 12.3 of
   [I-D.ietf-mediactrl-sip-control-framework]).

   Since creation of conference and join mixers is associated with media
   mixing resources on the MS, the security policy for this control
   package needs to address how such mixers are securely managed across
   more than one control channel.  Such a security policy is only useful

McGlashan, et al.         Expires July 10, 2011                [Page 85]
Internet-Draft            Mixer Control Package             January 2011

   for secure, confidential and integrity protected channels.  The
   identity of control channels is determined by the channel identifier:
   i.e. the value of the cfw-id attribute in the SDP and Dialog-ID
   header in the channel protocol (see
   [I-D.ietf-mediactrl-sip-control-framework]).  Channels are the same
   if they have the same identifier; otherwise, they are different.
   This control package imposes the following additional security
   policies:

   Responses:  The MS MUST only send a response to a mixer management or
      audit request using the same control channel as the one used to
      send the request.

   Notifications:  The MS MUST only send notification events for
      conference and join mixers using the same control channel as it
      received the request creating the mixer.

   Auditing:  The MS MUST only provide audit information about
      conference and join mixers which have been created on the same
      control channel as the one upon the <audit> request is sent.  For
      example, if a join between two connections has been created on one
      channel, then a request on another channel to audit all mixers -
      <audit mixers="true"/> - would not report on this join mixer.

   Rejection:  The MS SHOULD reject requests to audit or manipulate an
      existing conference or join mixer on the MS if the channel is not
      the same as the one used when the mixer was created.  The MS
      rejects a request by sending a Control Framework 403 response (see
      Section 7.4 and Section 12.3 of
      [I-D.ietf-mediactrl-sip-control-framework]).  For example, if a
      channel with identifier 'cfw1234' has been used to send a request
      to create a particular conference and the MS receives on channel
      'cfw98969' a request to audit or destroy this particular
      conference, then the MS sends a 403 framework response.

   There can be valid reasons why an implementation does not reject an
   audit or mixer manipulation request on a different channel from the
   one which created the mixer.  For example, a system administrator
   might require a separate channel to audit mixer resources created by
   system users and to terminate mixers consuming excessive system
   resources.  Alternatively, a system monitor or resource broker might
   require a separate channel to audit mixers managed by this package on
   a MS.  However, the full implications need to be understood by the
   implementation and carefully weighted before accepting these reasons
   as valid.  If the reasons are not valid in their particular
   circumstances, the MS rejects such requests.

   There can also be valid reasons for 'channel handover' including high

McGlashan, et al.         Expires July 10, 2011                [Page 86]
Internet-Draft            Mixer Control Package             January 2011

   availability support or where one AS needs to take over management of
   mixers after the AS which created them has failed.  This could be
   achieved by the control channels using the same channel identifier,
   one after another.  For example, assume a channel is created with the
   identifier 'cfw1234' and the channel is used to create mixers on the
   MS.  This channel (and associated SIP dialog) then terminates due to
   a failure on the AS.  As permitted by the Control Framework, the
   channel identifier 'cfw1234' could then be reused so that another
   channel is created with the same identifier 'cfw1234', allowing it to
   'take over' management of the mixers on the MS.  Again, the
   implementation needs to understand the full implications and
   carefully weight them before accepting these reasons as valid.  If
   the reasons are not valid for their particular circumstances, the MS
   uses the appropriate SIP mechanisms to prevent session establishment
   when the same channel identifier is used in setting up another
   control channel (see Section 4 of
   [I-D.ietf-mediactrl-sip-control-framework]).

McGlashan, et al.         Expires July 10, 2011                [Page 87]
Internet-Draft            Mixer Control Package             January 2011

8.  IANA Considerations

   This specification instructs IANA to register a new Media Control
   Channel Framework Package, a new XML namespace, a new XML schema and
   a new MIME type.

8.1.  Control Package Registration

   This section registers a new Media Control Channel Framework package,
   per the instructions in Section 12.1 of
   [I-D.ietf-mediactrl-sip-control-framework].

      To: ietf-sip-control@iana.org
      Subject: Registration of new Channel Framework package
      Package Name: msc-mixer/1.0
        [NOTE TO IANA/RFC-EDITOR: Please replace XXXX
        with the RFC number for this specification.]
      Published Specification(s): RFCXXXX
      Person & email address to contact for further information:
      IETF, MEDIACTRL working group, (mediactrl@ietf.org),
      Scott McGlashan (smcg.stds01@mcglashan.org).

8.2.  URN Sub-Namespace Registration

   This section registers a new XML namespace,
   "urn:ietf:params:xml:ns:msc-mixer", per the guidelines in RFC 3688
   [RFC3688].

McGlashan, et al.         Expires July 10, 2011                [Page 88]
Internet-Draft            Mixer Control Package             January 2011

         URI: urn:ietf:params:xml:ns:msc-mixer
         Registrant Contact: IETF, MEDIACTRL working group,
         (mediactrl@ietf.org), Scott McGlashan
         (smcg.stds01@mcglashan.org).
         XML:
            BEGIN
            <?xml version="1.0"?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
             <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
              <head>
               <title>Media Control Channel Framework Mixer
                      Package attributes</title>
              </head>
              <body>
               <h1>Namespace for Media Control Channel
                   Framework Mixer Package attributes</h1>
               <h2>urn:ietf:params:xml:ns:msc-mixer</h2>
        [NOTE TO IANA/RFC-EDITOR: Please replace XXXX
        with the RFC number for this specification.]
                 <p>See RFCXXXX</p>
              </body>
             </html>
            END

8.3.  XML Schema Registration

   This section registers an XML schema as per the guidelines in RFC
   3688 [RFC3688].

      URI:  urn:ietf:params:xml:ns:msc-mixer
      Registrant Contact: IETF, MEDIACTRL working group,
         (mediactrl@ietf.org), Scott McGlashan
         (smcg.stds01@mcglashan.org).
      Schema:  The XML for this schema can be found in
         Section 5 of this document.

8.4.  MIME Media Type Registration for  'application/msc-mixer+xml'

   This section registers the "application/msc-mixer+xml" MIME type.

McGlashan, et al.         Expires July 10, 2011                [Page 89]
Internet-Draft            Mixer Control Package             January 2011

   To:  ietf-types@iana.org
    Subject:  Registration of MIME media type
              application/msc-mixer+xml
    MIME media type name:  application
    MIME subtype name:  msc-mixer+xml
    Required parameters:  (none)
    Optional parameters:  charset
       Indicates the character encoding of enclosed XML.  Default is
       UTF-8.
    Encoding considerations:  Uses XML, which can employ 8-bit
       characters, depending on the character encoding used.  See RFC
       3023 [RFC3023], section 3.2.
    Security considerations:  No known security considerations outside
       of those provided by the Media Control Channel Framework Mixer
       Package.
    Interoperability considerations:  This content type provides
       constructs for the Media Control Channel Framework Mixer package.
    Published specification:  RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please
       replace XXXX with the RFC number for this specification.]
    Applications which use this media type:  Implementations of
       the Media Control Channel Framework Mixer package.
    Additional Information:  Magic Number(s): (none)
       File extension(s): (none)
       Macintosh File Type Code(s): (none)
    Person & email address to contact for further information:  Scott
       McGlashan <smcg.stds01@mcglashan.org>
    Intended usage:  LIMITED USE
    Author/Change controller:  The IETF
    Other information:  None.

McGlashan, et al.         Expires July 10, 2011                [Page 90]
Internet-Draft            Mixer Control Package             January 2011

9.  Change Summary

   Note to RFC Editor: Please remove this whole section.

   The following are the changes between the -14 and -13 versions
   (addressing remaining IESG DISCUSS):

   o  4.7.7 Language Identifier: deleted statement "where the language
      code is required and a country code or other subtag identifier is
      optional&1.  Introduction

   The IETF has specified datagram transport using UDP, SCTP, and DCCP,
   as well as protocols layered on top of these transports (e.g., SCTP/
   UDP, DCCP/UDP, QUIC/UDP), and direct datagram transport over the IP
   network layer.  This document describes a robust method for Path MTU
   Discovery (PMTUD) that can be used with these transport protocols (or
   the applications that use their transport service) to discover an
   appropriate size of packet to use across an Internet path.

1.1.  Classical Path MTU Discovery

   Classical Path Maximum Transmission Unit Discovery (PMTUD) can be
   used with any transport that is able to process ICMP Packet Too Big
   (PTB) messages (e.g., [RFC1191] and [RFC8201]).  In this document,
   the term PTB message is applied to both IPv4 ICMP Unreachable
   messages (type 3) that carry the error Fragmentation Needed (Type 3,
   Code 4) [RFC0792] and ICMPv6 Packet Too Big messages (Type 2)
   [RFC4443].  When a sender receives a PTB message, it reduces the
   effective MTU to the value reported as the Link MTU in the PTB
   message.  A method from time-to-time increases the packet size in
   attempt to discover an increase in the supported PMTU.  The packets
   sent with a size larger than the current effective PMTU are known as
   probe packets.

   Packets not intended as probe packets are either fragmented to the
   current effective PMTU, or the attempt to send fails with an error
   code.  Applications can be provided with a primitive to let them read
   the Maximum Packet Size (MPS), derived from the current effective
   PMTU.

   Classical PMTUD is subject to protocol failures.  One failure arises
   when traffic using a packet size larger than the actual PMTU is
   black-holed (all datagrams sent with this size, or larger, are
   discarded).  This could arise when the PTB messages are not delivered
   back to the sender for some reason (see for example [RFC2923]).

   Examples where PTB messages are not delivered include:

   *  The generation of ICMP messages is usually rate limited.  This
      could result in no PTB messages being generated to the sender (see
      section 2.4 of [RFC4443])

   *  ICMP messages can be filtered by middleboxes (including firewalls)
      [RFC4890].  A stateful firewall could be configured with a policy
      to block incoming ICMP messages, which would prevent reception of
      PTB messages to a sending endpoint behind this firewall.

Fairhurst, et al.       Expires 24 September 2020               [Page 4]
Internet-Draft                  DPLPMTUD                      March 2020

   *  When the router issuing the ICMP message drops a tunneled packet,
      the resulting ICMP message will be directed to the tunnel ingress.
      This tunnel endpoint is responsible for forwarding the ICMP
      message and also processing the quoted packet within the payload
      field to remove the effect of the tunnel, and return a correctly
      formatted ICMP message to the sender [I-D.ietf-intarea-tunnels].
      Failure to do this prevents the PTB message reaching the original
      sender.

   *  Asymmetry in forwarding can result in there being no return route
      to the original sender, which would prevent an ICMP message being
      delivered to the sender.  This issue can also arise when policy-
      based routing is used, Equal Cost Multipath (ECMP) routing is
      used, or a middlebox acts as an application load balancer.  An
      example is where the path towards the server is chosen by ECMP
      routing depending on bytes in the IP payload.  In this case, when
      a packet sent by the server encounters a problem after the ECMP
      router, then any resulting ICMP message also needs to be directed
      by the ECMP router towards the original sender.

   *  There are additional cases where the next hop destination fails to
      receive a packet because of its size.  This could be due to
      misconfiguration of the layer 2 path between nodes, for instance
      the MTU configured in a layer 2 switch, or misconfiguration of the
      Maximum Receive Unit (MRU).  If a packet is dropped by the link,
      this will not cause a PTB message to be sent to the original
      sender.

   Another failure could result if a node that is not on the network
   path sends a PTB message that attempts to force a sender to change
   the effective PMTU [RFC8201].  A sender can protect itself from
   reacting to such messages by utilizing the quoted packet within a PTB
   message payload to validate that the received PTB message was
   generated in response to a packet that had actually originated from
   the sender.  However, there are situations where a sender would be
   unable to provide this validation.  Examples where validation of the
   PTB message is not possible include:

   *  When a router issuing the ICMP message implements RFC792
      [RFC0792], it is only required to include the first 64 bits of the
      IP payload of the packet within the quoted payload.  There could
      be insufficient bytes remaining for the sender to interpret the
      quoted transport information.

      Note: The recommendation in RFC1812 [RFC1812] is that IPv4 routers
      return a quoted packet with as much of the original datagram as
      possible without the length of the ICMP datagram exceeding 576

Fairhurst, et al.       Expires 24 September 2020               [Page 5]
Internet-Draft                  DPLPMTUD                      March 2020

      bytes.  IPv6 routers include as much of the invoking packet as
      possible without the ICMPv6 packet exceeding 1280 bytes [RFC4443].

   *  The use of tunnels/encryption can reduce the size of the quoted
      packet returned to the original source address, increasing the
      risk that there could be insufficient bytes remaining for the
      sender to interpret the quoted transport information.

   *  Even when the PTB message includes sufficient bytes of the quoted
      packet, the network layer could lack sufficient context to
      validate the message, because validation depends on information
      about the active transport flows at an endpoint node (e.g., the
      socket/address pairs being used, and other protocol header
      information).

   *  When a packet is encapsulated/tunneled over an encrypted
      transport, the tunnel/encapsulation ingress might have
      insufficient context, or computational power, to reconstruct the
      transport header that would be needed to perform validation.

   *  A Network Address Translation (NAT) device that translates a
      packet header, ought to also translate ICMP messages and update
      the ICMP quoted packet [RFC5508] in that message.  If this is not
      correctly translated then the sender would not be able to
      associate the message with the PL that originated the packet, and
      hence this ICMP message cannot be validated.

1.2.  Packetization Layer Path MTU Discovery

   The term Packetization Layer (PL) has been introduced to describe the
   layer that is responsible for placing data blocks into the payload of
   IP packets and selecting an appropriate MPS.  This function is often
   performed by a transport protocol (e.g., DCCP, RTP, SCTP, QUIC), but
   can also be performed by other encapsulation methods working above
   the transport layer.

   In contrast to PMTUD, Packetization Layer Path MTU Discovery
   (PLPMTUD) [RFC4821] introduced a method that does not rely upon
   reception and validation of PTB messages.  It is therefore more
   robust than Classical PMTUD.  This has become the recommended
   approach for implementing discovery of the PMTU [RFC8085].

   It uses a general strategy where the PL sends probe packets to search
   for the largest size of unfragmented datagram that can be sent over a
   network path.  Probe packets are sent to explore using a larger
   packet size.  If a probe packet is successfully delivered (as
   determined by the PL), then the PLPMTU is raised to the size of the

Fairhurst, et al.       Expires 24 September 2020               [Page 6]
Internet-Draft                  DPLPMTUD                      March 2020

   successful probe.  If no response is received to a probe packet, the
   method then reduces the PLPMTU.

   Datagram PLPMTUD introduces flexibility in implementation.  At one
   extreme, it can be configured to only perform Black Hole Detection
   and recovery with increased robustness compared to Classical PMTUD.
   At the other extreme, all PTB processing can be disabled, and PLPMTUD
   replaces Classical PMTUD.

   PLPMTUD can also include additional consistency checks without
   increasing the risk that data is lost when probing to discover the
   Path MTU.  For example, information available at the PL, or higher
   layers, enables received PTB messages to be validated before being
   utilized.

1.3.  Path MTU Discovery for Datagram Services

   Section 5 of this document presents a set of algorithms for datagram
   protocols to discover the largest size of unfragmented datagram that
   can be sent over a network path.  The method relies upon features of
   the PL described in Section 3 and applies to transport protocols
   operating over IPv4 and IPv6.  It does not require cooperation from
   the lower layers, although it can utilize PTB messages when these
   received messages are made available to the PL.

   The message size guidelines in section 3.2 of the UDP Usage
   Guidelines [RFC8085] state "an application SHOULD either use the Path
   MTU information provided by the IP layer or implement Path MTU
   Discovery (PMTUD)", but does not provide a mechanism for discovering
   the largest size of unfragmented datagram that can be used on a
   network path.  The present document updates RFC 8085 to specify this
   method in place of PLPMTUD [RFC4821] and provides a mechanism for
   sharing the discovered largest size as the MPS (see Section 4.4).

   Section 10.2 of [RFC4821] recommended a PLPMTUD probing method for
   the Stream Control Transport Protocol (SCTP).  SCTP utilizes probe
   packets consisting of a minimal sized HEARTBEAT chunk bundled with a
   PAD chunk as defined in [RFC4820].  However, RFC 4821 did not provide
   a complete specification.  The present document replaces this by
   providing a complete specification.

   The Datagram Congestion Control Protocol (DCCP) [RFC4340] requires
   implementations to support Classical PMTUD and states that a DCCP
   sender "MUST maintain the MPS allowed for each active DCCP session".
   It also defines the current congestion control MPS (CCMPS) supported
   by a network path.  This recommends use of PMTUD, and suggests use of
   control packets (DCCP-Sync) as path probe packets, because they do

Fairhurst, et al.       Expires 24 September 2020               [Page 7]
Internet-Draft                  DPLPMTUD                      March 2020

   not risk application data loss.  The method defined in this
   specification can be used with DCCP.

   Section 6 specifies the method for datagram transports and provides
   information to enable the implementation of PLPMTUD with other
   datagram transports and applications that use datagram transports.

   Section 6 also provides updated recommendations for [RFC6951] and
   [RFC8261].

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   The following terminology is defined.  Relevant terms are directly
   copied from [RFC4821], and the definitions in [RFC1122].

   Acknowledged PL:  A PL that includes a mechanism that can confirm
      successful delivery of datagrams to the remote PL endpoint (e.g.,
      SCTP).  Typically, the PL receiver returns acknowledgments
      corresponding to the received datagrams, which can be utilised to
      detect black-holing of packets (c.f., Unacknowledged PL).

   Actual PMTU:  The Actual PMTU is the PMTU of a network path between a
      sender PL and a destination PL, which the DPLPMTUD algorithm seeks
      to determine.

   Black Hole:  A Black Hole is encountered when a sender is unaware
      that packets are not being delivered to the destination end point.
      Two types of Black Hole are relevant to DPLPMTUD:

      *  Packets encounter a packet Black Hole when packets are not
         delivered to the destination endpoint (e.g., when the sender
         transmits packets of a particular size with a previously known
         effective PMTU and they are discarded by the network).

      *  An ICMP Black Hole is encountered when the sender is unaware
         that packets are not delivered to the destination endpoint
         because PTB messages are not received by the originating PL
         sender.

   Classical Path MTU Discovery:  Classical PMTUD is a process described
      in [RFC1191] and [RFC8201], in which nodes rely on PTB messages to

Fairhurst, et al.       Expires 24 September 2020               [Page 8]
Internet-Draft                  DPLPMTUD                      March 2020

      learn the largest size of unfragmented packet that can be used
      across a network path.

   Datagram:  A datagram is a transport-layer protocol data unit,
      transmitted in the payload of an IP packet.

   Effective PMTU:  The Effective PMTU is the current estimated value
      for PMTU that is used by a PMTUD.  This is equivalent to the
      PLPMTU derived by PLPMTUD plus the size of any headers added below
      the PL, including the IP layer headers.

   EMTU_S:  The Effective MTU for sending (EMTU_S) is defined in
      [RFC1122] as "the maximum IP datagram size that may be sent, for a
      particular combination of IP source and destination addresses...".

   EMTU_R:  The Effective MTU for receiving (EMTU_R) is designated in
      [RFC1122] as the largest datagram size that can be reassembled by
      EMTU_R (Effective MTU to receive).

   Link:  A Link is a communication facility or medium over which nodes
      can communicate at the link layer, i.e., a layer below the IP
      layer.  Examples are Ethernet LANs and Internet (or higher) layer
      and tunnels.

   Link MTU:  The Link Maximum Transmission Unit (MTU) is the size in
      bytes of the largest IP packet, including the IP header and
      payload, that can be transmitted over a link.  Note that this
      could more properly be called the IP MTU, to be consistent with
      how other standards organizations use the acronym.  This includes
      the IP header, but excludes link layer headers and other framing
      that is not part of IP or the IP payload.  Other standards
      organizations generally define the link MTU to include the link
      layer headers.  This specification continues the requirement in
      [RFC4821], that states "All links MUST enforce their MTU: links
      that might non- deterministically deliver packets that are larger
      than their rated MTU MUST consistently discard such packets."

   MAX_PLPMTU:  The MAX_PLPMTU is the largest size of PLPMTU that
      DPLPMTUD will attempt to use.

   MIN_PLPMTU:  The MIN_PLPMTU is the smallest size of PLPMTU that
      DPLPMTUD will attempt to use.

   MPS:  MPS: The Maximum Packet Size (MPS) is the largest size of
      application data block that can be sent across a network path by a
      PL using a single Datagram.

   Packet:  A Packet is the IP header plus the IP payload.

Fairhurst, et al.       Expires 24 September 2020               [Page 9]
Internet-Draft                  DPLPMTUD                      March 2020

   Packetization Layer (PL):  The PL is a layer of the network stack
      that places data into packets and performs transport protocol
      functions.  Examples of a PL include: TCP, SCTP, SCTP over DTLS or
      QUIC.

   Path:  The Path is the set of links and routers traversed by a packet
      between a source node and a destination node by a particular flow.

   Path MTU (PMTU):  The Path MTU (PMTU) is the minimum of the Link MTU
      of all the links forming a network path between a source node and
      a destination node, as used by PMTUD.

   PTB_SIZE:  The PTB_SIZE is a value reported in a validated PTB
      message that indicates next hop link MTU of a router along the
      path.

   PL_PTB_SIZE:  The size reported in a validated PTB message, reduced
      by the size of all headers added by layers below the PL.

   PLPMTU:  The Packetization Layer PMTU is an estimate of the largest
      size of PL datagram that can be sent by a path, controled by
      PLPMTUD.

   PLPMTUD:  Packetization Layer Path MTU Discovery (PLPMTUD), the
      method described in this document for datagram PLs, which is an
      extension to Classical PMTU Discovery.

   Probe packet:  A probe packet is a datagram sent with a purposely
      chosen size (typically the current PLPMTU or larger) to detect if
      packets of this size can be successfully sent end-to-end across
      the network path.

   Unacknowledged PL:  A PL that does not itself provide a mechanism to
      confirm delivery of datagrams to the remote PL endpoint (e.g.,
      UDP), and therefore requires DPLPMTUD to provide a mechanism to
      detect black-holing of packets (c.f., Acknowledged PL).

3.  Features Required to Provide Datagram PLPMTUD

   The principles expressed in [RFC4821] apply to the use of the
   technique with any PL.  TCP PLPMTUD has been defined using standard
   TCP protocol mechanisms.  Unlike TCP, a datagram PL requires
   additional mechanisms and considerations to implement PLPMTUD.

   The requirements for datagram PLPMTUD are:

   1.   Managing the PLPMTU: For datagram PLs, the PLPMTU is managed by
        DPLPMTUD.  A PL MUST NOT send a datagram (other than a probe

Fairhurst, et al.       Expires 24 September 2020              [Page 10]
Internet-Draft                  DPLPMTUD                      March 2020

        packet) with a size at the PL layer that is larger than the
        current PLPMTU.

   2.   Probe packets: On request, a DPLPMTUD sender is REQUIRED to be
        able to transmit a packet larger than the PLMPMTU.  This is used
        to send a probe packet.  In IPv4, a probe packet MUST be sent
        with the Don" and clarified that RFC 4647 specifies the matching
      procedure.

   The following are the changes between the -13 and -12 versions
   (addressing remaining IESG DISCUSS):

   o  4.0, 4.1, etc: Added language tags to identify the language of
      descriptive text attributes.  A desclang attribute is added to the
      root element and has a default value of i-default.  Subordinate
      elements with descriptive text attributes also have this attribute
      defined - if it is not specified on the subordinate element, then
      the desclang value on the root element applies.  Added example of
      desclang in 4.1.

   o  5: Updated schema with desclang attributes

   o  Section 4.7.6: Corrected ABNF definition of IANA MIME media type
      to allow parameter values.

   The following are the changes between the -12 and -11 versions
   (primarily addressing IESG DISCUSS, comments and nits):

   o  Introduction: Clarified that Control Framework is an equivalent
      term for the Media Control Channel Framework.

   o  4.2.4.2, 4.2.4.3, 4.5: Replaced reference to standards-tracks RFC
      for assignment of new values, with reference to using Standards
      Action process defined in RFC 5226.

   o  4.0: Clarified that while some elements contain attributes whose
      value is descriptive text, this descriptive text is for diagnostic
      use only and does not require a language indicator such as a
      language tag.

   o  4.2.2.5.2: expanded DTMF acronym.

   o  4.2.1.4.2.1: Changed <video-layout> so that the layout is a child
      element rather than content value.  Changed examples to match.
      Updated XML schema.

McGlashan, et al.         Expires July 10, 2011                [Page 91]
Internet-Draft            Mixer Control Package             January 2011

   o  4.2.1.4.3: Changed <video-switch> so that the policy is a child
      element rather than content value.  Changed examples to match.
      Updated XML schema.

   o  4.4.1: changed <codec> to include name attribute; aligned
      definition with RFC4288; updated XML schema.

   o  4.2.2.5: Clarified that the media attribute of <stream> is a MIME
      type-name with reference to RFC 4288.

   o  4.5.1: Added encoding attribute to <param> to allow for
      specification of content-transfer-encoding schema.  Updated XML
      schema.

   o  4.5.1: Simplified content model of <param> to be text only.
      Updated XML schema.

   o  4.6.6: Clarified MIME media type format with ABNF production
      referencing RFC 4288.

   o  4.2.2.5.3: clarified the definition of <region> as an area in a
      video layout

   o  5: Stated that the schema is normative.

   o  5: Corrected default value of tones attribute in schema to match
      definition in 4.2.2.5.2.

   o  4.6: Type definitions; added references to XML Schema datatypes
      where appropriate; changed definition of boolean to match W3C
      definition and updated boolean type in schema.

   o  Typos: in 4.2.1.4.2.1, added '/' to <video-layout>; in 4.2.1.4.3
      <video-switch>, replaced second <join> with <unjoin>; in 4.2.3,
      corrected code and status in <response> examples;

   o  Validated all examples against XML schema and corrected where
      necessary.

   The following are the changes between the -11 and -10 versions
   (addressing IETF Last Call comments):

   o  4.2.2.3: For <modifyjoin>, removed the statement "It MUST NOT
      change the configuration of any streams not included as child
      elements." since modifications in stream directionality can affect
      other streams of the same type.

McGlashan, et al.         Expires July 10, 2011                [Page 92]
Internet-Draft            Mixer Control Package             January 2011

   o  4.2.2.5.2: Changed definition of tones attribute of <clamp>
      element so that if the element is specified, then all DTMF tones
      are clamped by default.  Updated XML schema.

   o  7: Corrected references from Section 11 to Section 12 in Control
      Framework.

   o  Fixed various typos.

   The following are the changes between the -10 and -09 versions:

   o  References: Moved the XCON reference to the Normative References
      section.

   o  4.2: Mixer Elements: clarified that when a requested mixer
      operation (partially) fails, the MS carries out no part of the
      operation and sends an error response.

   The following are the changes between the -09 and -08 versions
   following shepherd writeup:

   o  4.2.4.1.1: <active-talker>: Removed the statement that it is an
      error if an <active-talker> element has both connectionid and
      conferenceid attributes specified because the AS always sends a
      framework 200 in response to notification events, including active
      talker events.  Instead, clarified that no active talker is
      described if both attributes are specified or if neither attribute
      is specified.

   o  Various spelling and grammatical errors fixed.

   The following are the changes between the -08 and -07 versions.

   o  8.4: Changed file extension from '.xml' to (none)

   o  Changed "~" to a ":" for connectionid

   o  4.2.6.1: Clarified that <param> can contain an XML value.

   o  4.2.4.2: Changed <unjoin-notify> status codes so that only 0-2
      defined and all others are reserved for future use requiring a
      standard-track RFC.

   o  4.2.4.3: Changed <conferenceexit> status codes so that only 0-2
      defined and all others are reserved for future use requiring a
      standard-track RFC.

McGlashan, et al.         Expires July 10, 2011                [Page 93]
Internet-Draft            Mixer Control Package             January 2011

   o  4.5: Changed status code for <response> and <auditresponse> so
      that certain codes are defined and all others are reserved for
      future use requiring a standard-track RFC.

   The following are the changes between the -07 and -06 versions.

   o  Generally corrected references from Section 17.1 to Section 16.1
      of Control Channel Framework.

   o  4.2.2.2: removed "is" in "unless this is leads to a stream
      conflict"

   o  4.2.2.3: corrected error code from 408 to 409 for "If the
      specified entities are not already joined, then the MS reports an
      error (408)."

   o  4.2.1.4.3: corrected error code from 409 to 424 for "If the MS
      does not support the specified video switching policy or ..., then
      MS reports a 409 error".

   o  4.2.1.4.2: corrected error code from 408 to 423 for "If the MS
      does not support video conferencing at all, or ...., the MS
      reports an 408 error ..."

   o  4.2.1.1, 4.2.1.2, 4.2.2.2, 4.2.2.3: Clarified that <codecs>
      specified in <createconference> or <modifyconference> impose a
      limitation in the media capability of a conference and this
      limitation affects whether the conference can be <join> or
      <modifyjoin>ed to another entity.

   The following are the changes between the -06 and -05 versions.

   o  4.4.1: <codec>: corrected typos, added an example of <params>
      usage, added a <subtype> section and moved the <params> section
      inside this section.

   o  8: IANA Considerations: Updated IANA registration information and
      added registration for the XML Schema

   The following are the changes between the -05 and -04 versions.

   o  Schema: Fixed problem with non-deterministic content models.

   o  7.  Security Considerations: Added requirement that
      implementations need to secure SIP and RTP sessions with User
      Agents.

   The following are the changes between the -04 and -03 versions.

McGlashan, et al.         Expires July 10, 2011                [Page 94]
Internet-Draft            Mixer Control Package             January 2011

   o  4.2.1.4.3: corrected typo

   o  4.2.2.3: Clarified the behavior of <modifyjoin> for cases where
      each direction of a stream is independently controlled.

   o  4.2.2.5: Corrected syntax error in examples.

   o  4.2.2.5.1: Clarified that when an audio stream is in the muted
      state, then a <volume> automatic or setgain control causes the
      state to change automatically to unmuted.

   o  7 Security: Clarified that both conference and join mixers are
      covered by the package security policies.

   o  7 Security: Added a denial of service example where the attacker
      impersonates the MS.

   o  7 Security: Clarified that the package security policy for
      multiple channels is only useful if the channels themselves are
      secured.

   o  Updated acknowledgements.

   The following are the major changes between the -03 and -02 versions.

   o  Corrected various typos and nits.

   o  Conformance language: Removed unnecessary MUSTs, especially for
      error codes.  Changed most RECOMMENDEDs to MUST or MAY.  Removed
      lowercase 'should', 'must' and 'may'.

   o  Tidied up Abstract

   o  Removed old Introduction section (it just duplicated the
      abstract).  Replaced it with the old Overview Section.  Section
      numbering changed!

   o  Introduction: Clarified which MediaCtrl Requirements are satisfied
      by this package.

   o  4.2.1.1: <createconference>: Clarified that an attempt to create a
      conference with an identifier already used by an existing
      conference does not affect the existing conference (405 error
      response).

   o  4.2.1.4.1: <audio-mixing>: Added a 'n' attribute for the number of
      participants to be included in nbest audio mixing.

McGlashan, et al.         Expires July 10, 2011                [Page 95]
Internet-Draft            Mixer Control Package             January 2011

   o  4.2.1.4.3: <video-switch>: Clarified that the active speaker in
      video switching is the loudest speaker.

   o  4.2.1.4.4: <subscribe>: Clarified that if a subscription specified
      in a foreign namespace element or attribute is not supported by
      the MS, then the MS generates a 428 error response.  Changed
      conformance support for <active-talkers-sub> from SHOULD to MUST.
      Removed 422 error response.

   o  4.2.2: Joining Elements: Added text to the empty section.

   o  4.2.2.2, 4.2.2.3, 4.2.2.4: <join>, <modifyjoin> and <unjoin>:
      Clarified that join operation failures do not affect existing
      stream properties of the entities (407 and new 422 error
      response).  Clarified stream failure errors in <modifyjoin> and
      <unjoin>.

   o  4.2.2.2: <join>.  Clarified that <stream> elements can be used to
      independently control properties of the media flow in different
      directions.  Added a response code (422) for when the MS does not
      support a media stream configuation.

   o  4.2.2.2: <join>.  Clarified that error responses are generated if
      id1 or id2 reference a conference or connection which does not
      exist.  Added an error status code (412) for non-existant
      connections.

   o  4.2.2.5: <stream>: Changed the definition so that in each child
      element, the media stream affected is indicated by the value of
      the direction attribute of the parent element.  Added examples of
      controlling the media flow properties.

   o  4.2.4.2: <unjoin-notify>.  Added reserved range of status codes.
      Changed code from 1 to 0 for the unjoin case.  Changed code from 3
      to 1 for execution error.

   o  4.2.4.3: <conferenceexit>.  Added reserved range of status codes.
      Changed code from 1 to 0 for the destroyconference case (align
      with IVR).  Added a code for conference exiting due to exceeding
      its maximum duration.

   o  Schema: Adding missing version attribute on <mscmixer>.

   o  Security Considerations: Major update.  Added examples showing
      malicious attacks when channel security is not correctly
      addressed.  Added more details on multiple channel cases including
      administrator and monitor channels as well as channel handover.

McGlashan, et al.         Expires July 10, 2011                [Page 96]
Internet-Draft            Mixer Control Package             January 2011

   o  Removed affliations in Contributors section.

   The following are the major changes between the -02 and -01 versions.

   o  Section 4: Aligned Control Package definitions with requirements
      in Section 8 of the Control Framework.

   o  Following October Interim meeting discussion on response codes,
      generally clarified usage of error status codes, modified some
      codes and re-organized the response codes section (Section 4.6)
      with more guidance and details.

   o  MIXER-006.  No action required following October 2008 interim
      discussion.

   o  MIXER-008.  No action required following October 2008 interim
      discussion.

   o  MIXER-009.  No action required for control package - addressed in
      -05 framework draft following interim October 2008 discussion.

   o  MIXER-010/5.2.2.5: Clarified that in the <stream> element, an
      "inactive" direction value indicates the stream is established but
      there is no media flow.  Such a stream can be manipulated by
      <modifyjoin> and <unjoin>.

   o  5.2.2.5: <stream>: Clarified that the media stream specified in
      child elements <volume>, <clamp>, <region> and <priority> is the
      stream originating from the entity identified as id1.

   o  5.2.1.4.3: <video-switch>: Clarified that it is not an error if a
      <stream> specifies a region which is not defined for the currently
      active video layout.

   o  5.2.1.4.2.1: <video-layout>: Added descriptions and ASCII art for
      layout and regions of XCON video layouts.

   o  Added examples of audio conferencing, connection bridging and
      video conferencing.

   The following are the major changes between the -01 and -00 versions.

   o  [MIXER-001]/5.2.4.3: Added <conferenceexit> notification event.

   o  [MIXER-003]/5.2.1.4.2.1: Added ASCII diagrams for video layouts.

   o  [MIXER-004]/5.3.2.2.1: Added active <video-layout> information to
      <conferenceaudit>.

McGlashan, et al.         Expires July 10, 2011                [Page 97]
Internet-Draft            Mixer Control Package             January 2011

   o  [MIXER-007]/5.4.1: Added <params> inside <codec> so additional
      codec information can be specified.

   o  5.2.1.1: Fixed <createconference> example with missing min-
      participants attributes.

   o  5: Changed handling of unsupported foreign namespace elements and
      attributes.  The MS send a 427 error response if it encounters
      foreign elements and attributes it does not support.

   o  5.2.1.4.3: <video-switch>.  Clarified that the VAS policy is
      implementation-specific if a participant provides more than one
      audio stream.

   o  5.2.2.2/5.2.2.3/5.2.2.4: Clarified that joining behavior so that
      streams which have previously been <modifiedjoin>ed or <unjoin>ed
      are not affected by a general <unjoin>.

   o  5.2.1.4.3: <video-switch>: Added support for whether active
      speaker is displayed on their video layout ('activespeakermix'
      attribute) and clarified that personal video mixes are out of
      scope for this package.

   o  5.2.1.4.3/5.2.2.5.4: <video-switch>: Added support for a priority
      mechanism in video switching policy and a <priority child element
      on <stream>.

   o  8:Updated security section

   o  13:Updated references

   o  5.2.1.4.4.1: Added default of 3 seconds for <active-talkers-sub>
      interval.

   o  5.2.2.5.1: <volume> controltype attribute set to mandatory.

   o  Updated schema

   The following are the major changes between the -00 of this work
   group item draft and the individual submission -04 version.

   o  Control package name is now 'msc-mixer/1.0'.  Namespace is now
      'urn:ietf:params:xml:ns:msc-mixer'.  Mime type is now
      'application/msc-mixer+xml'.

   o  Added XML root element <mscmixer>.

McGlashan, et al.         Expires July 10, 2011                [Page 98]
Internet-Draft            Mixer Control Package             January 2011

   o  Editorial tidy up of sections.

   o  Added audit request/response elements.

   o  Added video layout and switching conference configuration.

   o  <audio-mixing>: changed 'mix-type' attribute to 'type'
      (consistency with video-switch)

   o  Added "inactive" as value of <stream>'s direction attribute.

   o  Added <region> child to <stream> element.

   o  <createconference>: <audio-mixing> element is no longer mandatory;
      added <video-layouts> and <video-switch> child elements. reserved-
      talkers and reserved-listeners as attributes.

   o  replaced conf-id attribute with conferenceid attribute.

   o  Removed <data> element.  Active talkers subscription and
      notifications used dedicated elements now.

   o  Added <unjoin-notify> notification event to indicate when
      (un)expected joins occur.  Use case: connection or conference
      joined to a conference and conference exits (either by request or
      runtime error.

   The following are the major changes between the -04 of the draft and
   the -03 version.

   o  Updated reference for Media Control Channel Framework

   The following are the major changes between the -03 of the draft and
   the -02 version.

   o  None

   The following are the major changes between the -02 of the draft and
   the -01 version.

   o  clarified the model for join operations and introduced several new
      package error codes

   o  added definition for MS connection

   The following are the major changes between the -01 of the draft and
   the -00 version.

McGlashan, et al.         Expires July 10, 2011                [Page 99]
Internet-Draft            Mixer Control Package             January 2011

   o  restructured into single request response model for non-trivial
      operations

   o  aligned with XML structure of other control framework packages

McGlashan, et al.         Expires July 10, 2011               [Page 100]
Internet-Draft            Mixer Control Package             January 2011

10.  Contributors

   Asher Shiratzky provided valuable support and contributions to early
   versions of this document.

   The authors would like to thank the Mixer design team consisting of
   Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan and Mary
   Barnes who provided valuable feedback, input, diagrams and text to
   this document.

McGlashan, et al.         Expires July 10, 2011               [Page 101]
Internet-Draft            Mixer Control Package             January 2011

11.  Acknowledgments

   The authors would like to thank Roni Even, Lorenzo Miniero, Steve
   Buko and Stephane Bastien for expert reviews of this work.

   Shawn Emery carried out a thorough security review.

McGlashan, et al.         Expires July 10, 2011               [Page 102]
Internet-Draft            Mixer Control Package             January 2011

12.  References

12.1.  Normative References

   [I-D.ietf-mediactrl-sip-control-framework]
              Boulton, C., Melanchuk, T., and S. McGlashan, "Media
              Control Channel Framework",
              draft-ietf-mediactrl-sip-control-framework-12 (work in
              progress), September 2010.

   [I-D.ietf-xcon-common-data-model]
              Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen,
              "Conference Information Data Model for Centralized
              Conferencing (XCON)", draft-ietf-xcon-common-data-model-22
              (work in progress), December 2010.

   [RFC2045]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part One: Format of Internet Message
              Bodies", RFC 2045, November 1996.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3023]  Murata, M., St. Laurent, S., and D. Kohn, "XML Media
              Types", RFC 3023, January 2001.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              January 2004.

   [RFC4288]  Freed, N. and J. Klensin, "Media Type Specifications and
              Registration Procedures", BCP 13, RFC 4288, December 2005.

   [RFC4574]  Levin, O. and G. Camarillo, "The Session Description
              Protocol (SDP) Label Attribute", RFC 4574, August 2006.

   [RFC4647]  Phillips, A. and M. Davis, "Matching of Language Tags",
              BCP 47, RFC 4647, September 2006.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 5226,
              May 2008.

   [RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234, January 2008.

   [RFC5646]  Phillips, A. and M. Davis, "Tags for Identifying
              Languages", BCP 47, RFC 5646, September 2009.

McGlashan, et al.         Expires July 10, 2011               [Page 103]
Internet-Draft            Mixer Control Package             January 2011

   [XML]      Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E.,
              and F. Yergeau, "Extensible Markup Language (XML) 1.0
              (Third Edition)", W3C Recommendation, February 2004.

   [XMLSchema:Part2]
              Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes
              Second Edition", W3C Recommendation, October 2004.

12.2.  Informative References

   [IANA]     "IANA registry for RTP Payload Types",
              <http://www.iana.org/assignments/rtp-parameters>.

   [MIME.mediatypes]
              "IANA registry for MIME Media Types",
              <http://www.iana.org/assignments/media-types/>.

   [RFC2277]  Alvestrand, H., "IETF Policy on Character Sets and
              Languages", BCP 18, RFC 2277, January 1998.

   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              June 2002.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, July 2003.

   [RFC5022]  Van Dyke, J., Burger, E., and A. Spitzer, "Media Server
              Control Markup Language (MSCML) and Protocol", RFC 5022,
              September 2007.

   [RFC5167]  Dolly, M. and R. Even, "Media Server Control Protocol
              Requirements", RFC 5167, March 2008.

   [RFC5707]  Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup
              Language (MSML)", RFC 5707, February 2010.

McGlashan, et al.         Expires July 10, 2011               [Page 104]
Internet-Draft            Mixer Control Package             January 2011

Authors' Addresses

   Scott McGlashan
   Hewlett-Packard

   Email: smcg.stds01@mcglashan.org

   Tim Melanchuk
   Rain Willow Communications

   Email: tim.melanchuk@gmail.com

   Chris Boulton
   NS-Technologies

   Email: chris@ns-technologies.com

McGlashan, et al.         Expires July 10, 2011               [Page 105]