draft-ietf-sipcore-event-rate-control-02.txt   draft-ietf-sipcore-event-rate-control-03.txt 
Network Working Group A. Niemi Network Working Group A. Niemi
Internet-Draft K. Kiss Internet-Draft K. Kiss
Intended status: Standards Track Nokia Intended status: Standards Track Nokia
Expires: July 12, 2010 S. Loreto Expires: August 26, 2010 S. Loreto
Ericsson Ericsson
January 08, 2010 February 22, 2010
Session Initiation Protocol (SIP) Event Notification Extension for Session Initiation Protocol (SIP) Event Notification Extension for
Notification Rate Control Notification Rate Control
draft-ietf-sipcore-event-rate-control-02 draft-ietf-sipcore-event-rate-control-03
Abstract Abstract
This document specifies mechanisms for adjusting the rate of Session This document specifies mechanisms for adjusting the rate of Session
Initiation Protocol (SIP) event notifications. These mechanisms can Initiation Protocol (SIP) event notifications. These mechanisms can
be applied in subscriptions to all SIP event packages. be applied in subscriptions to all SIP event packages.
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
skipping to change at page 1, line 41 skipping to change at page 1, line 41
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 12, 2010. This Internet-Draft will expire on August 26, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the BSD License. described in the BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Definitions and Document Conventions . . . . . . . . . . . . . 4 2. Definitions and Document Conventions . . . . . . . . . . . . . 5
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Use Case for limiting the maximum rate of notifications . 4 3.1. Use Case for limiting the maximum rate of notifications . 5
3.2. Use Case for setting a minimum rate for notifications . . 5 3.2. Use Case for setting a minimum rate for notifications . . 6
3.3. Use Case for specifying the average rate of 3.3. Use Case for specifying the average rate of
notifications . . . . . . . . . . . . . . . . . . . . . . 6 notifications . . . . . . . . . . . . . . . . . . . . . . 7
3.4. Requirements . . . . . . . . . . . . . . . . . . . . . . . 6 3.4. Requirements . . . . . . . . . . . . . . . . . . . . . . . 7
3.5. The maximum rate mechanism for Resource List Server . . . 7 3.5. The maximum rate mechanism for Resource List Server . . . 8
3.6. Basic Operation . . . . . . . . . . . . . . . . . . . . . 9 3.6. Basic Operation . . . . . . . . . . . . . . . . . . . . . 10
4. Operation of the maximum rate mechanism . . . . . . . . . . . 10 4. Operation of the maximum rate mechanism . . . . . . . . . . . 11
4.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 10 4.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 11
4.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 11 4.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 12
4.3. Selecting the maximum rate . . . . . . . . . . . . . . . . 11 4.3. Selecting the maximum rate . . . . . . . . . . . . . . . . 12
4.4. Buffer Policy Description . . . . . . . . . . . . . . . . 12 4.4. Buffer Policy Description . . . . . . . . . . . . . . . . 13
4.4.1. Partial State Notifications . . . . . . . . . . . . . 12 4.4.1. Partial State Notifications . . . . . . . . . . . . . 13
4.4.2. Full State Notifications . . . . . . . . . . . . . . . 13 4.4.2. Full State Notifications . . . . . . . . . . . . . . . 14
4.5. Estimated Bandwidth Savings . . . . . . . . . . . . . . . 13 4.5. Estimated Bandwidth Savings . . . . . . . . . . . . . . . 14
5. Operation of the minimum rate mechanism . . . . . . . . . . . 14 5. Operation of the minimum rate mechanism . . . . . . . . . . . 15
5.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 14 5.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 15
5.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 14 5.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 15
6. Operation of the average rate mechanism . . . . . . . . . . . 15 6. Operation of the average rate mechanism . . . . . . . . . . . 16
6.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 15 6.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 16
6.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 16 6.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 17
6.3. Calculating the timeout . . . . . . . . . . . . . . . . . 17 6.3. Calculating the timeout . . . . . . . . . . . . . . . . . 18
7. Usage of "min-interval", "max-interval" and 7. Usage of "min-interval", "max-interval" and
"average-interval" in a combination . . . . . . . . . . . . . 18 "average-interval" in a combination . . . . . . . . . . . . . 19
8. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.1. "min-interval", "max-interval" and "average-interval" 8.1. "min-interval", "max-interval" and "average-interval"
Header Field Parameters . . . . . . . . . . . . . . . . . 19 Header Field Parameters . . . . . . . . . . . . . . . . . 20
8.2. Augmented BNF Definitions . . . . . . . . . . . . . . . . 19 8.2. Augmented BNF Definitions . . . . . . . . . . . . . . . . 20
8.3. Event header field usage in responses to the NOTIFY 8.3. Event header field usage in responses to the NOTIFY
request . . . . . . . . . . . . . . . . . . . . . . . . . 19 request . . . . . . . . . . . . . . . . . . . . . . . . . 20
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21
10. Security Considerations . . . . . . . . . . . . . . . . . . . 20 10. Security Considerations . . . . . . . . . . . . . . . . . . . 21
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
12.1. Normative References . . . . . . . . . . . . . . . . . . . 20 12.1. Normative References . . . . . . . . . . . . . . . . . . . 21
12.2. Informative References . . . . . . . . . . . . . . . . . . 21 12.2. Informative References . . . . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 22 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23
1. Introduction 1. Introduction
The SIP events framework [RFC3265] defines a generic framework for The SIP events framework [RFC3265] defines a generic framework for
subscriptions to and notifications of events related to SIP systems. subscriptions to and notifications of events related to SIP systems.
This framework defines the methods SUBSCRIBE and NOTIFY, and This framework defines the methods SUBSCRIBE and NOTIFY, and
introduces the concept of an event package, which is a concrete introduces the concept of an event package, which is a concrete
application of the SIP events framework to a particular class of application of the SIP events framework to a particular class of
events. events.
skipping to change at page 17, line 32 skipping to change at page 17, line 32
adjusted average time interval in an "average-interval" Subscription- adjusted average time interval in an "average-interval" Subscription-
State header field parameter of the subsequent NOTIFY requests. The State header field parameter of the subsequent NOTIFY requests. The
indicated "average-interval" value is adopted by the notifier, and indicated "average-interval" value is adopted by the notifier, and
the notification rate is adjusted accordingly. the notification rate is adjusted accordingly.
A notifier that does not understand this extension will not reflect A notifier that does not understand this extension will not reflect
the "average-interval" Subscription-State header parameter in the the "average-interval" Subscription-State header parameter in the
NOTIFY requests; the absence of this parameter serves as a hint to NOTIFY requests; the absence of this parameter serves as a hint to
the subscriber that no rate control is supported by the notifier. the subscriber that no rate control is supported by the notifier.
A compliant notifier MUST generate notifications whenever the time A compliant notifier SHOULD generate notifications whenever the time
since the most recent notification exceeds the value calculated using since the most recent notification exceeds the value calculated using
the formula defined in Section 6.3. the formula defined in Section 6.3.
The average rate mechanism is implemented as follows: The average rate mechanism is implemented as follows:
1) When a subscription is first created, the notifier creates a 1) When a subscription is first created, the notifier creates a
record that keeps track of the number of notifications that have record that keeps track of the number of notifications that have
been sent in the "period". This record is initialized to contain been sent in the "period". This record is initialized to contain
a history of having sent one message every "average-interval" a history of having sent one message every "average-interval"
seconds for the "period". seconds for the "period".
skipping to change at page 18, line 31 skipping to change at page 18, line 31
The output of the formula, "timeout", is the time to the next The output of the formula, "timeout", is the time to the next
notification, expressed in seconds. The formula has three inputs: notification, expressed in seconds. The formula has three inputs:
average-interval: The value of the "average-interval" parameter average-interval: The value of the "average-interval" parameter
conveyed in the Event header field, in seconds. conveyed in the Event header field, in seconds.
period: The rolling average period, in seconds. A suggested period: The rolling average period, in seconds. A suggested
reasonable period is 60 seconds. reasonable period is 60 seconds.
[OPEN ISSUE] Is the period value something we should be able to
tune, or we can simply specify a reasonable period?
count: The number of notifications that have been sent during the count: The number of notifications that have been sent during the
last "period" of seconds. last "period" of seconds.
In case both the maximum rate and the average rate mechanisms are In case both the maximum rate and the average rate mechanisms are
used in the same subscription the formula used to dynamically used in the same subscription the formula used to dynamically
calculate the timeout is given in equation (2): calculate the timeout is given in equation (2):
timeout = MAX[min-interval, (average-interval ^ 2) * count / period] (2) timeout = MAX[min-interval, (average-interval ^ 2) * count / period] (2)
min-interval: The value of the "min-interval" parameter conveyed in min-interval: The value of the "min-interval" parameter conveyed in
the Event header field, in seconds. the Event header field, in seconds.
The formula in (2) makes sure that for all the possible values of the The formula in (2) makes sure that for all the possible values of the
"min-interval" and "average-interval" parameters, with "average- "min-interval" and "average-interval" parameters, with "average-
interval" > "min-interval", the timeout never results in a lower interval" > "min-interval", the timeout never results in a lower
value than the value of the "min-interval" parameter. value than the value of the "min-interval" parameter.
In some situation it may be beneficial for the Notifier to achieve an
average rate in a different way than the algorithm detailed in this
document allows. However, the Notifier MUST comply with any "min-
interval" or "max-interval" parameters that have been negotiated.
7. Usage of "min-interval", "max-interval" and "average-interval" in a 7. Usage of "min-interval", "max-interval" and "average-interval" in a
combination combination
Applications can subscribe to an event package using all the rate Applications can subscribe to an event package using all the rate
control mechanisms individually, or in combination; in fact there is control mechanisms individually, or in combination; in fact there is
no technical incompatibility among them. However there are some no technical incompatibility among them. However there are some
combinations of the different rate control mechanisms that make combinations of the different rate control mechanisms that make
little sense to be used together. This section lists all the little sense to be used together. This section lists all the
combinations that are possible to insert in a subscription; the combinations that are possible to insert in a subscription; the
utility to use each combination in a subscription is also analyzed. utility to use each combination in a subscription is also analyzed.
skipping to change at page 20, line 38 skipping to change at page 20, line 43
max-interval-param = "max-interval" EQUAL delta-seconds max-interval-param = "max-interval" EQUAL delta-seconds
event-param =/ average-interval-param event-param =/ average-interval-param
subexp-params =/ average-interval-param subexp-params =/ average-interval-param
average-interval-param = "average-interval" EQUAL delta-seconds average-interval-param = "average-interval" EQUAL delta-seconds
8.3. Event header field usage in responses to the NOTIFY request 8.3. Event header field usage in responses to the NOTIFY request
This table expands the table described in Section 7.2 of SIP Events This table expands the table described in Section 7.2 of SIP Events
[RFC3265] allowing the Event header field to appear in a 200-class [RFC3265] allowing the Event header field to appear in a 200-class
response to a NOTIFY request. Implementations supporting the response to a NOTIFY request. A UA that wishes to update the value
functionality to update the previously agreed minimum, maximum or for minimum, maximum or average rate of notifications can do so by
average rate of notifications in a 200-class response to the NOTIFY including all desired values for the rate control parameters in an
request MUST support the inclusion of the Event header field. Event header field of the 200-class response to a NOTIFY request.
Header field where proxy ACK BYE CAN INV OPT REG PRA SUB NOT Header field where proxy ACK BYE CAN INV OPT REG PRA SUB NOT
----------------------------------------------------------------- -----------------------------------------------------------------
Event 2xx - - - - - - - - o Event 2xx - - - - - - - - o
9. IANA Considerations 9. IANA Considerations
This specification registers three new SIP header field parameters, This specification registers three new SIP header field parameters,
defined by the following information which is to be added to the defined by the following information which is to be added to the
Header Field Parameters and Parameter Values sub-registry under Header Field Parameters and Parameter Values sub-registry under
skipping to change at page 22, line 26 skipping to change at page 22, line 31
[I-D.ietf-geopriv-loc-filters] [I-D.ietf-geopriv-loc-filters]
Mahy, R., Rosen, B., and H. Tschofenig, "Filtering Mahy, R., Rosen, B., and H. Tschofenig, "Filtering
Location Notifications in the Session Initiation Protocol Location Notifications in the Session Initiation Protocol
(SIP)", draft-ietf-geopriv-loc-filters-09 (work in (SIP)", draft-ietf-geopriv-loc-filters-09 (work in
progress), December 2009. progress), December 2009.
[I-D.ietf-sipcore-subnot-etags] [I-D.ietf-sipcore-subnot-etags]
Niemi, A. and D. Willis, "An Extension to Session Niemi, A. and D. Willis, "An Extension to Session
Initiation Protocol (SIP) Events for Conditional Event Initiation Protocol (SIP) Events for Conditional Event
Notification", draft-ietf-sipcore-subnot-etags-03 (work in Notification", draft-ietf-sipcore-subnot-etags-04 (work in
progress), November 2009. progress), January 2010.
[RFC3320] Price, R., Bormann, C., Christoffersson, J., Hannu, H., [RFC3320] Price, R., Bormann, C., Christoffersson, J., Hannu, H.,
Liu, Z., and J. Rosenberg, "Signaling Compression Liu, Z., and J. Rosenberg, "Signaling Compression
(SigComp)", RFC 3320, January 2003. (SigComp)", RFC 3320, January 2003.
[RFC3680] Rosenberg, J., "A Session Initiation Protocol (SIP) Event [RFC3680] Rosenberg, J., "A Session Initiation Protocol (SIP) Event
Package for Registrations", RFC 3680, March 2004. Package for Registrations", RFC 3680, March 2004.
[RFC3842] Mahy, R., "A Message Summary and Message Waiting [RFC3842] Mahy, R., "A Message Summary and Message Waiting
Indication Event Package for the Session Initiation Indication Event Package for the Session Initiation
 End of changes. 14 change blocks. 
50 lines changed or deleted 52 lines changed or added

This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/