RFC 5432 PROPOSED STANDARD SDP · QOS · SIGNALING

SDP QoS Selection: Quality of Service (QoS) Mechanism Selection in the Session Description Protocol (SDP)

Two SDP attributes that let endpoints agree on which QoS mechanism, such as RSVP or NSIS, to use for a media stream.

On rfc-editor.org ↗
PUBLISHED
March 2009
AUTHORS
J. Polk, S. Dhesikan, G. Camarillo
STREAM
IETF
NEW SDP ATTRIBUTES
qos-mech-send, qos-mech-recv
INITIAL TOKENS
rsvp, nsis
ATTRIBUTE LEVEL
Session and media
REGISTRY POLICY
Specification Required
DOI
10.17487/RFC5432

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                            J. Polk
Request for Comments: 5432                                   S. Dhesikan
Category: Standards Track                                  Cisco Systems
                                                            G. Camarillo
                                                                Ericsson
                                                              March 2009


             Quality of Service (QoS) Mechanism Selection
               in the Session Description Protocol (SDP)

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (c) 2009 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 in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Abstract

   The offer/answer model for the Session Description Protocol (SDP)
   assumes that endpoints somehow establish the Quality of Service (QoS)
   required for the media streams they establish.  Endpoints in closed
   environments typically agree out-of-band (e.g., using configuration
   information) regarding which QoS mechanism to use.  However, on the
   Internet, there is more than one QoS service available.
   Consequently, there is a need for a mechanism to negotiate which QoS
   mechanism to use for a particular media stream.  This document
   defines such a mechanism.

Table of Contents

   1. Introduction ....................................................3
   2. Terminology .....................................................3
   3. SDP Attributes Definition .......................................3
   4. Offer/Answer Behavior ...........................................4
      4.1. Offerer Behavior ...........................................4
      4.2. Answerer Behavior ..........................................4
      4.3. Resource Reservation .......................................5
      4.4. Subsequent Offer/Answer Exchanges ..........................5
   5. Example .........................................................5
   6. IANA Considerations .............................................6
      6.1. Registration of the SDP 'qos-mech-send' Attribute ..........6
      6.2. Registration of the SDP 'qos-mech-recv' Attribute ..........6
      6.3. Registry for QoS Mechanism Tokens ..........................7
   7. Security Considerations .........................................7
   8. Acknowledgements ................................................7
   9. References ......................................................8
      9.1. Normative References .......................................8
      9.2. Informative References .....................................8

1.  Introduction

   The offer/answer model [RFC3264] for SDP [RFC4566] does not provide
   any mechanism for endpoints to negotiate the QoS mechanism to be used
   for a particular media stream.  Even when QoS preconditions [RFC3312]
   are used, the choice of the QoS mechanism is left unspecified and is
   up to the endpoints.

   Endpoints that support more than one QoS mechanism need a way to
   negotiate which one to use for a particular media stream.  Examples
   of QoS mechanisms are RSVP (Resource Reservation Protocol) [RFC2205]
   and NSIS (Next Steps in Signaling) [QoS-NSLP].

   This document defines a mechanism that allows endpoints to negotiate
   the QoS mechanism to be used for a particular media stream.  However,
   the fact that endpoints agree on a particular QoS mechanism does not
   imply that that particular mechanism is supported by the network.
   Discovering which QoS mechanisms are supported at the network layer
   is out of the scope of this document.  In any case, the information
   the endpoints exchange to negotiate QoS mechanisms, as defined in
   this document, can be useful for a network operator to resolve a
   subset of the QoS interoperability problem -- namely, to ensure that
   a mechanism commonly acceptable to the endpoints is chosen and make
   it possible to debug potential misconfiguration situations.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

3.  SDP Attributes Definition

   This document defines the 'qos-mech-send' and 'qos-mech-recv' session
   and media-level SDP [RFC4566] attributes.  The following is their
   Augmented Backus-Naur Form (ABNF) [RFC5234] syntax, which is based on
   the SDP [RFC4566] grammar:

      attribute            =/ qos-mech-send-attr
      attribute            =/ qos-mech-recv-attr

      qos-mech-send-attr   = "qos-mech-send" ":"
                             [[SP] qos-mech *(SP qos-mech)]
      qos-mech-recv-attr   = "qos-mech-recv" ":"
                             [[SP] qos-mech *(SP qos-mech)]

      qos-mech             = "rsvp" / "nsis" / extension-mech
      extension-mech       = token
   The 'qos-mech' token identifies a QoS mechanism that is supported by
   the entity generating the session description.  A token that appears
   in a 'qos-mech-send' attribute identifies a QoS mechanism that can be
   used to reserve resources for traffic sent by the entity generating
   the session description.  A token that appears in a 'qos-mech-recv'
   attribute identifies a QoS mechanism that can be used to reserve
   resources for traffic received by the entity generating the session
   description.

   The 'qos-mech-send' and 'qos-mech-recv' attributes are not
   interdependent; one can be used without the other.

   The following is an example of an 'm' line with 'qos-mech-send' and
   'qos-mech-recv' attributes:

      m=audio 50000 RTP/AVP 0
      a=qos-mech-send: rsvp nsis
      a=qos-mech-recv: rsvp nsis

4.  Offer/Answer Behavior

   Through the use of the 'qos-mech-send' and 'qos-mech-recv'
   attributes, an offer/answer exchange allows endpoints to come up with
   a list of common QoS mechanisms sorted by preference.  However, note
   that endpoints negotiate in which direction QoS is needed using other
   mechanisms, such as preconditions [RFC3312].  Endpoints may also use
   other mechanisms to negotiate, if needed, the parameters to use with
   a given QoS mechanism (e.g., bandwidth to be reserved).

4.1.  Offerer Behavior

   Offerers include a 'qos-mech-send' attribute with the tokens
   corresponding to the QoS mechanisms (in order of preference) that are
   supported in the send direction.  Similarly, offerers include a
   'qos-mech-recv' attribute with the tokens corresponding to the QoS
   mechanisms (in order of preference) that are supported in the receive
   direction.

4.2.  Answerer Behavior

   On receiving an offer with a set of tokens in a 'qos-mech-send'
   attribute, the answerer takes those tokens corresponding to QoS
   mechanisms that it supports in the receive direction and includes
   them, in order of preference, in a 'qos-mech-recv' attribute in the
   answer.  On receiving an offer with a set of tokens in a 'qos-mech-
   recv' attribute, the answerer takes those tokens corresponding to QoS
   mechanisms that it supports in the send direction and includes them,
   in order of preference, in a 'qos-mech-send' attribute in the answer.

   When ordering the tokens in a 'qos-mech-send' or a 'qos-mech-recv'
   attribute by preference, the answerer may take into account its own
   preferences and those expressed in the offer.  However, the exact
   algorithm to be used to order such token lists is outside the scope
   of this specification.

   Note that if the answerer does not have any QoS mechanism in common
   with the offerer, it will return empty 'qos-mech-send' and 'qos-mech-
   recv' attributes.

4.3.  Resource Reservation

   Once the offer/answer exchange completes, both offerer and answerer
   use the token lists in the 'qos-mech-send' and 'qos-mech-recv'
   attributes of the answer to perform resource reservations.  Offerers
   and answerers SHOULD attempt to use the QoS mechanism with highest
   priority in each direction first.  If an endpoint (the offerer or the
   answerer) does not succeed in using the mechanism with highest
   priority in a given direction, it SHOULD attempt to use the next QoS
   mechanism in order of priority in that direction, and so on.

   If an endpoint unsuccessfully tries all the common QoS mechanisms for
   a given direction, the endpoint MAY attempt to use additional QoS
   mechanisms not supported by the remote endpoint.  This is because
   there may be network entities out of the endpoint's control (e.g., an
   RSVP proxy) that make those mechanisms work.

4.4.  Subsequent Offer/Answer Exchanges

   If, during an established session for which the QoS mechanism to be
   used for a given direction was agreed upon using the mechanism
   defined in this specification, an endpoint receives a subsequent
   offer that does not contain the QoS selection attribute corresponding
   to that direction (i.e., the 'qos-mech-send' or 'qos-mech-recv'
   attribute is missing), the endpoints SHOULD continue using the same
   QoS mechanism used up to that moment.

5.  Example

   The following is an offer/answer exchange between two endpoints using
   the 'qos-mech-send' and 'qos-mech-recv' attributes.  Parts of the
   session descriptions are omitted for clarity purposes.

   The offerer generates the following session description, listing both
   RSVP and NSIS for both directions.  The offerer would prefer to use
   RSVP and, thus, includes it before NSIS.

      m=audio 50000 RTP/AVP 0
      a=qos-mech-send: rsvp nsis
      a=qos-mech-recv: rsvp nsis

   The answerer supports NSIS in both directions, but not RSVP.
   Consequently, it returns the following session description:

      m=audio 55000 RTP/AVP 0
      a=qos-mech-send: nsis
      a=qos-mech-recv: nsis

6.  IANA Considerations

   This specification registers two new SDP attributes and creates a new
   registry for QoS mechanisms.

6.1.  Registration of the SDP 'qos-mech-send' Attribute

   IANA has registered the following SDP att-field under the Session
   Description Protocol (SDP) Parameters registry:

   Contact name:   Gonzalo.Camarillo@ericsson.com

   Attribute name:   qos-mech-send

   Long-form attribute name:   QoS Mechanism for the Send Direction

   Type of attribute:   Session and Media levels

   Subject to charset:   No

   Purpose of attribute:   To list QoS mechanisms supported in the send
                           direction

   Allowed attribute values:   IANA Registered Tokens

6.2.  Registration of the SDP 'qos-mech-recv' Attribute

   IANA has registered the following SDP att-field under the Session
   Description Protocol (SDP) Parameters registry:

   Contact name:   Gonzalo.Camarillo@ericsson.com

   Attribute name:   qos-mech-recv

   Long-form attribute name:   QoS Mechanism for the Receive Direction

   Type of attribute:   Session and Media levels
   Subject to charset:   No

   Purpose of attribute:   To list QoS mechanisms supported in the
                           receive direction

   Allowed attribute values:   IANA Registered Tokens

6.3.  Registry for QoS Mechanism Tokens

   The IANA has created a subregistry for QoS mechanism token values to
   be used in the 'qos-mech-send' and 'qos-mech-recv' attributes under
   the Session Description Protocol (SDP) Parameters registry.  The
   initial values for the subregistry are as follows:

      QoS Mechanism                Reference
      ---------------------------- ---------
      rsvp                         RFC 5432
      nsis                         RFC 5432

   As per the terminology in [RFC5226], the registration policy for new
   QoS mechanism token values shall be 'Specification Required'.

7.  Security Considerations

   An attacker may attempt to add, modify, or remove 'qos-mech-send' and
   'qos-mech-recv' attributes from a session description.  This could
   result in an application behaving in a non-desirable way.  For
   example, the endpoints under attack may not be able to find a common
   QoS mechanism to use.

   Consequently, it is strongly RECOMMENDED that integrity and
   authenticity protection be applied to SDP session descriptions
   carrying these attributes.  For session descriptions carried in SIP
   [RFC3261], S/MIME [RFC3851] is the natural choice to provide such
   end-to-end integrity protection, as described in [RFC3261].  Other
   applications MAY use a different form of integrity protection.

8.  Acknowledgements

   Dave Oran helped form this effort.  Flemming Andreasen and Magnus
   Westerlund provided useful comments on this specification.

9.  References

9.1.  Normative References

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

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264, June
              2002.

   [RFC3851]  Ramsdell, B., Ed., "Secure/Multipurpose Internet Mail
              Extensions (S/MIME) Version 3.1 Message Specification",
              RFC 3851, July 2004.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 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., Ed., and P. Overell, "Augmented BNF for
              Syntax Specifications: ABNF", STD 68, RFC 5234, January
              2008.

9.2.  Informative References

   [QoS-NSLP] Manner, J., Karagiannis, G., and A. McDonald, "NSLP for
              Quality-of-Service Signaling", Work in Progress, February
              2008.

   [RFC2205]  Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
              Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
              Functional Specification", RFC 2205, September 1997.

   [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.

   [RFC3312]  Camarillo, G., Ed., Marshall, W., Ed., and J. Rosenberg,
              "Integration of Resource Management and Session Initiation
              Protocol (SIP)", RFC 3312, October 2002.

Authors' Addresses

   James Polk
   Cisco Systems
   3913 Treemont Circle
   Colleyville, Texas  76034
   USA

   Phone: +1-817-271-3552
   EMail: jmpolk@cisco.com


   Subha Dhesikan
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   USA

   EMail: sdhesika@cisco.com


   Gonzalo Camarillo
   Ericsson
   Hirsalantie 11
   Jorvas  02420
   Finland

   EMail: Gonzalo.Camarillo@ericsson.com

AI ELI5

On this page
PROBLEMThe SDP offer/answer model assumes endpoints somehow establish the QoS they need, but on the Internet more than one QoS mechanism is available and there was no way to negotiate which one to use.
MECHANISMThe offerer lists the QoS mechanisms it supports for sending and for receiving, in order of preference, in the qos-mech-send and qos-mech-recv attributes. The answerer returns the ones it also supports.
WHY IT MATTERSEndpoints get an ordered list of common mechanisms per direction and try them in priority order. Whether the network actually supports a mechanism is outside the document.

§1The Problem and Its Limits

The offer/answer model (RFC 3264) for SDP (RFC 4566) gives endpoints no way to negotiate the Quality of Service (QoS) mechanism for a media stream. Even with QoS preconditions (RFC 3312), the choice of mechanism is left to the endpoints. Endpoints in closed environments typically agree out of band, but on the Internet more than one QoS service is available.

Examples of QoS mechanisms are RSVP (RFC 2205) and NSIS. The RFC is clear about its limits: agreeing on a mechanism does not mean the network supports it, and discovering what the network supports is out of scope. The exchanged information can still help a network operator choose a mechanism acceptable to both endpoints and debug misconfiguration.

There is more than one way to reserve a fast lane for a call. Before this, the two callers had no standard way to say which way they know how to use.

§3The Two SDP Attributes

The document defines qos-mech-send and qos-mech-recv, both usable at the session and media level. Each holds a list of qos-mech tokens: rsvp, nsis or an extension token.

A token in qos-mech-send names a mechanism that can reserve resources for traffic sent by the entity that generated the session description. A token in qos-mech-recv does the same for traffic it receives. The two attributes are not interdependent, so one can be used without the other.

The RFC's example media line is m=audio 50000 RTP/AVP 0 followed by a=qos-mech-send: rsvp nsis and a=qos-mech-recv: rsvp nsis.

There are two little labels. One says how I can reserve the lane for what I send, and the other says how I can reserve the lane for what I receive.

§4Offer/Answer Behavior

The offerer puts in each attribute the mechanisms it supports for that direction, in order of preference. The answerer mirrors the directions: tokens from the offer's qos-mech-send that it supports in the receive direction go into its qos-mech-recv, and tokens from the offer's qos-mech-recv that it supports for sending go into its qos-mech-send. It may order the tokens by its own preferences and the offer's, but the ordering algorithm is out of scope. If nothing is in common, it returns empty attributes.

Which direction needs QoS is negotiated by other means, such as preconditions, and so are mechanism parameters like the bandwidth to reserve.

After the exchange, both sides use the answer's lists. They SHOULD try the highest-priority mechanism in each direction first, then the next one, and so on. If all common mechanisms fail, an endpoint MAY try mechanisms the other side does not support, because a network entity out of its control, such as an RSVP proxy, may make them work.

If a later offer in an established session lacks the attribute for a direction, the endpoints SHOULD keep using the mechanism already in use.

One side shows its list of tricks in order of favorite. The other side crosses out the ones it cannot do and sends the list back. Then both try the top trick first, and the next one if that fails.

§5Example Exchange

The offerer lists both RSVP and NSIS for both directions and puts RSVP first, because it prefers it. The answerer supports NSIS in both directions but not RSVP, so its answer lists only nsis in qos-mech-send and qos-mech-recv. The endpoints therefore use NSIS.

I say I can do trick A or trick B and I like A more. You can only do B, so you answer with B, and we both use B.

THE RFC'S EXAMPLE EXCHANGE, SIMPLIFIED
OffererAnswerer
  1. OFFERqos-mech-send: rsvp nsis; qos-mech-recv: rsvp nsis
  2. ANSWERqos-mech-send: nsis; qos-mech-recv: nsis

§6IANA Registrations

IANA registered the two attributes under the SDP Parameters registry, both at session and media level and not subject to charset. It also created a subregistry of QoS mechanism tokens with initial values rsvp and nsis, both referencing RFC 5432. New tokens follow the 'Specification Required' policy from RFC 5226.

A public list was started that holds the names of the allowed tricks. New names can be added only when someone writes down how the trick works.

§7Security Considerations

An attacker may add, modify or remove the qos-mech-send and qos-mech-recv attributes in a session description. The endpoints might then be unable to find a common QoS mechanism, and the application could behave badly.

The RFC therefore strongly RECOMMENDS integrity and authenticity protection of SDP carrying these attributes. For SDP carried in SIP (RFC 3261), S/MIME is the natural choice for end-to-end integrity protection. Other applications MAY use a different form of integrity protection.

If a sneaky person scribbles on the list while it travels, the two callers might think they have no trick in common. Sealing the message stops that.

§7References