draft-ietf-sipcore-event-rate-control-06.txt   draft-ietf-sipcore-event-rate-control-07.txt 
Network Working Group A. Niemi Network Working Group A. Niemi
Internet-Draft K. Kiss Internet-Draft K. Kiss
Updates: 3265 (if approved) Nokia Updates: 3265 (if approved) Nokia
Intended status: Standards Track S. Loreto Intended status: Standards Track S. Loreto
Expires: September 2, 2011 Ericsson Expires: October 3, 2011 Ericsson
March 1, 2011 April 1, 2011
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-06 draft-ietf-sipcore-event-rate-control-07
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. This document be applied in subscriptions to all SIP event packages. This document
updates RFC 3265. updates RFC 3265.
Status of this Memo Status of this Memo
skipping to change at page 1, line 36 skipping to change at page 1, line 36
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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."
This Internet-Draft will expire on September 2, 2011. This Internet-Draft will expire on October 3, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 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
skipping to change at page 3, line 38 skipping to change at page 3, line 38
6.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 14 6.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 14
6.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 15 6.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 15
6.3. Selecting the Minimum Rate . . . . . . . . . . . . . . . . 16 6.3. Selecting the Minimum Rate . . . . . . . . . . . . . . . . 16
7. Operation of the Adaptive Minimum Rate Mechanism . . . . . . . 16 7. Operation of the Adaptive Minimum Rate Mechanism . . . . . . . 16
7.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 16 7.1. Subscriber Behavior . . . . . . . . . . . . . . . . . . . 16
7.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 17 7.2. Notifier Behavior . . . . . . . . . . . . . . . . . . . . 17
7.3. Selecting the Adaptive Minimum Rate . . . . . . . . . . . 18 7.3. Selecting the Adaptive Minimum Rate . . . . . . . . . . . 18
7.4. Calculating the Timeout . . . . . . . . . . . . . . . . . 18 7.4. Calculating the Timeout . . . . . . . . . . . . . . . . . 18
8. Usage of the Maximum Rate, Minimum Rate and Adaptive 8. Usage of the Maximum Rate, Minimum Rate and Adaptive
Minimum Rate Mechanisms in a combination . . . . . . . . . . . 19 Minimum Rate Mechanisms in a combination . . . . . . . . . . . 19
9. Protocol Element Definitions . . . . . . . . . . . . . . . . . 21 9. Protocol Element Definitions . . . . . . . . . . . . . . . . . 20
9.1. "max-rate", "min-rate" and "adaptive-min-rate" Header 9.1. "max-rate", "min-rate" and "adaptive-min-rate" Header
Field Parameters . . . . . . . . . . . . . . . . . . . . . 21 Field Parameters . . . . . . . . . . . . . . . . . . . . . 21
9.2. Grammar . . . . . . . . . . . . . . . . . . . . . . . . . 21 9.2. Grammar . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.3. Event Header Field Usage in Responses to the NOTIFY 9.3. Event Header Field Usage in Responses to the NOTIFY
request . . . . . . . . . . . . . . . . . . . . . . . . . 21 request . . . . . . . . . . . . . . . . . . . . . . . . . 21
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
11. Security Considerations . . . . . . . . . . . . . . . . . . . 22 11. Security Considerations . . . . . . . . . . . . . . . . . . . 22
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23
13.1. Normative References . . . . . . . . . . . . . . . . . . . 23 13.1. Normative References . . . . . . . . . . . . . . . . . . . 23
skipping to change at page 5, line 5 skipping to change at page 5, line 5
by a notifier. This helps the subscriber to effectively use by a notifier. This helps the subscriber to effectively use
different trigger criterias within a subscription to eliminate different trigger criterias within a subscription to eliminate
unnecessary notifications but at the same time make sure that the unnecessary notifications but at the same time make sure that the
current event state is periodically received. current event state is periodically received.
This document defines an extension to the SIP events framework This document defines an extension to the SIP events framework
defining the following three Event header field parameters that allow defining the following three Event header field parameters that allow
a subscriber to set a maximum, a minimum and an adaptive minimum rate a subscriber to set a maximum, a minimum and an adaptive minimum rate
of notifications generated by the notifier: of notifications generated by the notifier:
max-rate: specifies a maximum rate of notifications (a minimum time max-rate: specifies a maximum number of notifications per second.
period between two notifications).
min-rate: specifies a minimum rate notifications (a maximum time min-rate: specifies a minimum number of notifications per second.
period between two notifications).
average-rate: specifies an adaptive minimum rate of notifications adaptive-minimum-rate: specifies an adaptive minimum number of
(an adaptive maximum time period between two notifications). notifications per second.
These mechanisms are applicable to any event subscription, both These mechanisms are applicable to any event subscription, both
single event subscription and event list subscription. A notifier single event subscription and event list subscription. A notifier
compliant to this specification will adjust the rate at which it compliant to this specification will adjust the rate at which it
generates notifications. generates notifications.
2. Definitions and Document Conventions 2. Definitions and Document Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
skipping to change at page 9, line 31 skipping to change at page 9, line 28
control values in a "max-rate", "min-rate" or "adaptive-min-rate" control values in a "max-rate", "min-rate" or "adaptive-min-rate"
Subscription-State header field parameter of the subsequent NOTIFY Subscription-State header field parameter of the subsequent NOTIFY
requests. requests.
5. Operation of the Maximum Rate Mechanism 5. Operation of the Maximum Rate Mechanism
5.1. Subscriber Behavior 5.1. Subscriber Behavior
A subscriber that wishes to apply a maximum rate to notifications in A subscriber that wishes to apply a maximum rate to notifications in
a subscription MUST construct a SUBSCRIBE request that includes the a subscription MUST construct a SUBSCRIBE request that includes the
"max-rate" Event header field parameter specifying the requested "max-rate" Event header field parameter. This parameter specifies
maximum number of notifications per second. The value of this the requested maximum number of notifications per second that is
parameter is the reciprocal value of the "min-interval" parameter, equivalent to the reciprocal value of the minimum time interval
the minimum time interval between two consecutive notifications. The between two consecutive notifications. The value of this parameter
value of the "min-interval" parameter is a positive decimal integer is a positive decimal fraction measured in 1/seconds. For example,
measured in seconds. For example, when the subscriber wants to when the subscriber wants to receive notifications no more frequently
receive notifications no more frequently than once in every seven than once in every seven seconds, then it sets the value of the "max-
seconds, then it sets the value of the "max-rate" parameter to 1/7. rate" parameter to 1/7.
Note that the witnessed time between two consecutive received Note that the witnessed time between two consecutive received
notifications may not conform to the "max-rate" value for a number notifications may not conform to the "max-rate" value for a number
of reasons. For example, network jitter and retransmissions may of reasons. For example, network jitter and retransmissions may
result in the subscriber receiving the notifications more frequent result in the subscriber receiving the notifications more frequent
than the "max-rate" value recommends. than the "max-rate" value recommends.
A subscriber that wishes to update the previously agreed maximum rate A subscriber that wishes to update the previously agreed maximum rate
of notifications MUST include the updated "max-rate" Event header of notifications MUST include the updated "max-rate" Event header
field parameter in a subsequent SUBSCRIBE request or a 2xx response field parameter in a subsequent SUBSCRIBE request or a 2xx response
skipping to change at page 14, line 39 skipping to change at page 14, line 38
schemes are complementary rather than competing mechanisms to the schemes are complementary rather than competing mechanisms to the
maximum rate mechanism. After all, they can both be applied maximum rate mechanism. After all, they can both be applied
simultaneously. simultaneously.
6. Operation of the Minimum Rate Mechanism 6. Operation of the Minimum Rate Mechanism
6.1. Subscriber Behavior 6.1. Subscriber Behavior
A subscriber that wishes to apply a minimum rate to notifications in A subscriber that wishes to apply a minimum rate to notifications in
a subscription MUST construct a SUBSCRIBE request that includes the a subscription MUST construct a SUBSCRIBE request that includes the
"min-rate" Event header field parameter specifying the requested "min-rate" Event header field parameter. This parameter specifies
minimum number of notifications per second. The value of this the requested minimum number of notifications per second that is
parameter is the reciprocal value of the "max-interval" parameter, equivalent to the reciprocal value of the maximum time interval
the maximum time interval between two consecutive notifications. The between two consecutive notifications. The value of this parameter
value of the "max-interval" parameter is a positive decimal integer is a positive decimal fraction measured in 1/seconds. For example,
measured in seconds. For example, when the subscriber wants to when the subscriber wants to receive notifications at least once in
receive notifications at least once in every seven seconds, then it every seven seconds, then it sets the value of the "min-rate"
sets the value of the "min-rate" parameter to 1/7. parameter to 1/7.
A subscriber that wishes to update the previously agreed minimum rate A subscriber that wishes to update the previously agreed minimum rate
of notifications MUST include the updated "min-rate" Event header of notifications MUST include the updated "min-rate" Event header
field parameter in a subsequent SUBSCRIBE request or a 2xx response field parameter in a subsequent SUBSCRIBE request or a 2xx response
to the NOTIFY request. to the NOTIFY request.
A subscriber that wishes to remove the minimum rate control from A subscriber that wishes to remove the minimum rate control from
notifications MUST indicate so by not including a "min-rate" Event notifications MUST indicate so by not including a "min-rate" Event
header field parameter in a subsequent SUBSCRIBE request or a 2xx header field parameter in a subsequent SUBSCRIBE request or a 2xx
response to the NOTIFY request. response to the NOTIFY request.
skipping to change at page 15, line 38 skipping to change at page 15, line 37
rate" value is adopted by the notifier, and the notification rate is rate" value is adopted by the notifier, and the notification rate is
adjusted accordingly. 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 "min-rate" Subscription-State header field parameter in the the "min-rate" Subscription-State header field parameter in the
NOTIFY requests; the absence of this parameter indicates to the NOTIFY requests; the absence of this parameter indicates to the
subscriber that no rate control is supported by the notifier. subscriber that no rate control is supported by the notifier.
A compliant notifier MUST generate notifications when state changes A compliant notifier MUST generate notifications when state changes
occur or when the time since the most recent notification exceeds the occur or when the time since the most recent notification exceeds the
"max-interval" value, the reciprocal value of the "min-rate" reciprocal value of the "min-rate" parameter. Depending on the event
parameter. Depending on the event package and subscriber preferences package and subscriber preferences indicated in the SUBSCRIBE
indicated in the SUBSCRIBE request, the NOTIFY request sent as a request, the NOTIFY request sent as a result of a minimum rate
result of a minimum rate mechanism MUST contain either the current mechanism MUST contain either the current full state or the partial
full state or the partial state showing the difference between the state showing the difference between the current state and the last
current state and the last successfully communicated state. If the successfully communicated state. If the subscriber and the notifier
subscriber and the notifier support the procedures in RFC 5839 support the procedures in RFC 5839 [RFC5839] the complete NOTIFY
[RFC5839] the complete NOTIFY request or the NOTIFY request body can request or the NOTIFY request body can be suppressed if the state has
be suppressed if the state has not changed from the previous not changed from the previous notification.
notification.
Retransmissions of NOTIFY requests are not affected by the minimum Retransmissions of NOTIFY requests are not affected by the minimum
rate mechanism, i.e., the minimum rate mechanism only applies to the rate mechanism, i.e., the minimum rate mechanism only applies to the
generation of new transactions. In other words, the minimum rate generation of new transactions. In other words, the minimum rate
mechanism does not in any way break or modify the normal mechanism does not in any way break or modify the normal
retransmission mechanism. retransmission mechanism.
6.3. Selecting the Minimum Rate 6.3. Selecting the Minimum Rate
The minimum rate mechanism can be used to generate a lot of The minimum rate mechanism can be used to generate a lot of
skipping to change at page 16, line 29 skipping to change at page 16, line 27
The notifier MAY decide to increase or decrease the proposed "min- The notifier MAY decide to increase or decrease the proposed "min-
rate" value by the subscriber based on its local policy, static rate" value by the subscriber based on its local policy, static
configuration or other implementation-determined constraints. configuration or other implementation-determined constraints.
7. Operation of the Adaptive Minimum Rate Mechanism 7. Operation of the Adaptive Minimum Rate Mechanism
7.1. Subscriber Behavior 7.1. Subscriber Behavior
A subscriber that wishes to apply an adaptive minimum rate to A subscriber that wishes to apply an adaptive minimum rate to
notifications in a subscription MUST construct a SUBSCRIBE request notifications in a subscription MUST construct a SUBSCRIBE request
that includes the "adaptive-min-rate" Event header field parameter that includes the "adaptive-min-rate" Event header field parameter.
specifying an adaptive minimum number of notifications per second. This parameter specifies an adaptive minimum number of notifications
The value of this parameter is the reciprocal value of the "adaptive- per second that is equivalent to the the reciprocal value of the
max-interval" parameter, the adaptive maximum time interval between adaptive maximum time interval between two consecutive notifications.
two consecutive notifications. The value of the "adaptive-max- The value of this parameter is a positive decimal fraction measured
interval" parameter is a positive decimal integer measured in in 1/seconds. For example, when the subscriber wants to receive
seconds. For example, when the subscriber wants to receive
notifications once in every seven seconds on an average, then it sets notifications once in every seven seconds on an average, then it sets
the value of the "adaptive-min-rate" parameter to 1/7. the value of the "adaptive-min-rate" parameter to 1/7.
A subscriber that wishes to update the previously agreed adaptive A subscriber that wishes to update the previously agreed adaptive
minimum rate of notifications MUST include the updated "adaptive-min- minimum rate of notifications MUST include the updated "adaptive-min-
rate" Event header field parameter in a subsequent SUBSCRIBE request rate" Event header field parameter in a subsequent SUBSCRIBE request
or a 2xx response to the NOTIFY request. or a 2xx response to the NOTIFY request.
A subscriber that wishes to remove the adaptive minimum rate control A subscriber that wishes to remove the adaptive minimum rate control
from notifications MUST indicate so by not including a "adaptive-min- from notifications MUST indicate so by not including a "adaptive-min-
skipping to change at page 18, line 45 skipping to change at page 18, line 42
The notifier MAY decide to increase or decrease the proposed The notifier MAY decide to increase or decrease the proposed
"adaptive-min-rate" value based on its local policy, static "adaptive-min-rate" value based on its local policy, static
configuration or other implementation-determined constraints. configuration or other implementation-determined constraints.
7.4. Calculating the Timeout 7.4. Calculating the Timeout
The formula used to vary the absolute pacing in a way that will meet The formula used to vary the absolute pacing in a way that will meet
the adaptive minimum rate requested over the period is given in the adaptive minimum rate requested over the period is given in
equation (1): equation (1):
timeout = count /(adaptive-min-rate ^ 2) * period (1) timeout = count / ((adaptive-min-rate ^ 2) * period) (1)
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:
adaptive-min-rate: The value of the "adaptive-min-rate" parameter adaptive-min-rate: The value of the "adaptive-min-rate" parameter
conveyed in the Subscription-State header field. conveyed in the Subscription-State header field.
period: The rolling average period, in seconds. The granularity of period: The rolling average period, in seconds. The granularity of
the values for the "period" parameter is set by local policy at the values for the "period" parameter is set by local policy at
the notifier, however the notifier MUST choose a value greater the notifier, however the notifier MUST choose a value greater
than the value of the "adaptive-max-interval" parameter, the than the reciprocal value of the "adaptive-min-rate" parameter.
reciprocal value of the "adaptive-min-rate" parameter. It is also It is also RECOMMENDED that the notifier chooses a "period"
RECOMMENDED that the notifier chooses a "period" parameter several parameter several times larger than reciprocal value of the
times larger than "adaptive-max-interval" parameter in order to "adaptive-min-rate" parameter in order to maximize the
maximize the effectiveness of the equation (1). It is an effectiveness of the equation (1). It is an implementation
implementation decision whether the notifier uses the same value decision whether the notifier uses the same value of the "period"
of the "period" parameter for all subscriptions or individual parameter for all subscriptions or individual values for each
values for each subscription. subscription.
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 not including any retransmissions of last "period" of seconds not including any retransmissions of
requests. requests.
In case both the maximum rate and the adaptive minimum rate In case both the maximum rate and the adaptive minimum rate
mechanisms are used in the same subscription the formula used to mechanisms are used in the same subscription the formula used to
dynamically calculate the timeout is given in equation (2): dynamically calculate the timeout is given in equation (2):
timeout = MAX[1/max-rate, count /(adaptive-min-rate ^ 2) * period] (2) timeout = MAX[(1/max-rate), count/((adaptive-min-rate ^ 2)*period)] (2)
max-rate: The value of the "max-rate" parameter conveyed in the max-rate: The value of the "max-rate" parameter conveyed in the
Subscription-State header field. Subscription-State header field.
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
"max-rate" and "adaptive-min-rate" parameters, with "adaptive-min- "max-rate" and "adaptive-min-rate" parameters, with "adaptive-min-
rate" < "max-rate", the timeout never results in a lower value than rate" < "max-rate", the timeout never results in a lower value than
"min-interval", the reciprocal value of the "max-rate" parameter. the reciprocal value of the "max-rate" parameter.
In some situation it may be beneficial for the notifier to achieve an In some situation it may be beneficial for the notifier to achieve an
adaptive minimum rate in a different way than the algorithm detailed adaptive minimum rate in a different way than the algorithm detailed
in this document allows. However, the notifier MUST comply with any in this document allows. However, the notifier MUST comply with any
"max-rate" or "min-rate" parameters that have been negotiated. "max-rate" or "min-rate" parameters that have been negotiated.
8. Usage of the Maximum Rate, Minimum Rate and Adaptive Minimum Rate 8. Usage of the Maximum Rate, Minimum Rate and Adaptive Minimum Rate
Mechanisms in a combination Mechanisms in a combination
Applications can subscribe to an event package using all the rate Applications can subscribe to an event package using all the rate
skipping to change at page 23, line 23 skipping to change at page 23, line 17
When the maximum rate mechanism involves partial state notifications, When the maximum rate mechanism involves partial state notifications,
the security considerations listed in RFC 5263 [RFC5263] apply in the security considerations listed in RFC 5263 [RFC5263] apply in
entirety. entirety.
12. Acknowledgments 12. Acknowledgments
Thanks to Pekka Pessi, Dean Willis, Eric Burger, Alex Audu, Alexander Thanks to Pekka Pessi, Dean Willis, Eric Burger, Alex Audu, Alexander
Milinski, Jonathan Rosenberg, Cullen Jennings, Adam Roach, Hisham Milinski, Jonathan Rosenberg, Cullen Jennings, Adam Roach, Hisham
Khartabil, Dale Worley, Martin Thomson, Byron Campen, Alan Johnston, Khartabil, Dale Worley, Martin Thomson, Byron Campen, Alan Johnston,
Michael Procter and Janet Gunn for support and/or review of this Michael Procter, Janet Gunn and Ari Keranen for support and/or review
work. of this work.
Thanks to Brian Rosen for the idea of the minimum and adaptive Thanks to Brian Rosen for the idea of the minimum and adaptive
minimum rate mechanisms, and Adam Roach for the work on the algorithm minimum rate mechanisms, and Adam Roach for the work on the algorithm
for the adaptive minimum rate mechanism and other feedback. for the adaptive minimum rate mechanism and other feedback.
13. References 13. References
13.1. Normative References 13.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
 End of changes. 16 change blocks. 
57 lines changed or deleted 53 lines changed or added

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