RFC5432

From RFC-Wiki

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.

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.

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.

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

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

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.

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.

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.

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.

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

IANA Considerations

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

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: [email protected]

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

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: [email protected]

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

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

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.

Acknowledgements

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

References

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.

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: [email protected]

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

EMail: [email protected]

Gonzalo Camarillo Ericsson Hirsalantie 11 Jorvas 02420 Finland

EMail: [email protected]