| < draft-polk-sip-rph-in-responses-00.txt | draft-polk-sip-rph-in-responses-01.txt > | |||
|---|---|---|---|---|
| SIP WG James Polk | SIP WG James Polk | |||
| Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
| Intended status: Standards Track June 13th, 2007 | Intended status: Standards Track (PS) February 24, 2008 | |||
| Expires: December 13th, 2007 | Expires: Aug 24, 2008 | |||
| Updates: RFC 4412 (if published) | Updates: RFC 4412 (if published) | |||
| Allowing SIP Resource Priority Header in SIP Responses | Allowing SIP Resource-Priority Header in SIP Responses | |||
| draft-polk-sip-rph-in-responses-00 | draft-polk-sip-rph-in-responses-01 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
| months and may be updated, replaced, or obsoleted by other documents | months and may be updated, replaced, or obsoleted by other documents | |||
| at any time. It is inappropriate to use Internet-Drafts as | at any time. It is inappropriate to use Internet-Drafts as | |||
| reference material or to cite them other than as "work in progress." | reference 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 December 16th, 2007. | This Internet-Draft will expire on August 24, 2008. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2008). | |||
| Abstract | Abstract | |||
| The Session Initiation Protocol (SIP) Resource Priority Header | The Session Initiation Protocol (SIP) Resource-Priority Header is | |||
| (RPH), in its current form, is ignored in SIP responses. This was a | ignored in SIP responses, according to RFC 4412. This was a | |||
| design choice during RFC 4412's development. This is now considered | design choice during RFC 4412's development. This is now considered | |||
| a bad design choice in certain scenarios. This document corrects | a bad design choice in certain scenarios. This document corrects | |||
| RFC 4412's communications model by optionally allowing a SIP server | RFC 4412's communications model by optionally allowing a SIP server | |||
| or user agent client to process the Resource-Priority Header in a | or user agent (UA) to process the Resource-Priority Header in a | |||
| response. | response. | |||
| 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 | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| 1. Introduction | 1. Introduction | |||
| The Session Initiation Protocol (SIP) Resource Priority Header | The Session Initiation Protocol (SIP) Resource-Priority Header | |||
| (RPH) [RFC4412], in its current form, is ignored by SIP entities if | [RFC4412], in its current form, is ignored by SIP entities if | |||
| in SIP responses. It was a design choice during RFC 4412's | in SIP responses. It was a design choice during RFC 4412's | |||
| development that only stateful servers would grant SIP messages | development that only stateful servers would grant SIP messages | |||
| preferential treatment. This is now considered a bad design choice | preferential treatment. This is now considered a bad design choice | |||
| in certain scenarios, such as those entities within trusted | in certain scenarios, such as those entities within trusted | |||
| networks, and where stateless servers are surrounded by more | networks, and where stateless servers are surrounded by more | |||
| stateful servers. This document corrects RFC 4412's communications | stateful servers. This document corrects RFC 4412's communications | |||
| model by allowing a SIP server or user agent client to process the | model by allowing a SIP server or user agent (UA) to process the | |||
| Resource-Priority Header in a response. | Resource-Priority Header in a response. | |||
| There are inconsistencies within RFC 4412 as to whether or not a SIP | ||||
| entity can process a Resource-Priority header in a response; Section | ||||
| 3.3 of [RFC4412] states (with a table) a Resource-Priority cannot be | ||||
| looked for in a response, whereas section 4.7.3 of [RFC4412] | ||||
| discusses how SIP entities deal with a Resource-Priority in a | ||||
| response. Here is a more thorough examination of what RFC 4412 says | ||||
| in both sections. | ||||
| RFC 4412 defines the SIP Resource-Priority header, and is a | RFC 4412 defines the SIP Resource-Priority header, and is a | |||
| standards track extension to SIP [RFC3261]. Section 3.3 of RFC 4412 | standards track extension to SIP [RFC3261]. Section 3.3 of RFC 4412 | |||
| has the following table 2 entry: | has the following table 2 entry: | |||
| Header field where proxy INV ACK CAN BYE REG OPT PRA | Header field where proxy INV ACK CAN BYE REG OPT PRA | |||
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | |||
| Resource-Priority R amdr o o o o o o o | Resource-Priority R amdr o o o o o o o | |||
| Header field where proxy SUB NOT UPD MSG REF INF PUB | Header field where proxy SUB NOT UPD MSG REF INF PUB | |||
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | |||
| Resource-Priority R amdr o o o o o o o | Resource-Priority R amdr o o o o o o o | |||
| According to RFC 3261, the 'R' in the "where" column states a | According to RFC 3261 [RFC3261], the 'R' in the "where" column | |||
| particular header is found in requests, and ignored in responses. | states a particular header is found in requests, and ignored in | |||
| Table 2 is a quick reference of usage of a header, but alone, is | responses. Table 2 is a quick reference of usage of a header, but | |||
| insufficient to define the expected behavior of a SIP header, | alone, is insufficient to define the expected behavior of a SIP | |||
| relying instead on what the header description text says in the RFC | header, relying instead on what the header description text says in | |||
| that creates the header. RFC 4412 fails to provide clear normative | the RFC that creates the header. RFC 4412 fails to provide clear | |||
| text indicating whether or not an RPH can be found in a response, or | normative text indicating whether or not a Resource-Priority value | |||
| what a SIP element is to do with it once received. | can be found in a response, or what a SIP element is to do with it | |||
| once one is received. | ||||
| Even though Tables 2 and 3 of RFC 3261 are not normative, this is | ||||
| frequently a discussion topic in and out of IETF meetings, and in | ||||
| other SDOs - resulting in industry confusion. | ||||
| The assumption at the time of RFC 4412 was that the | The assumption at the time of RFC 4412 was that the | |||
| Resource-Priority header would only be used in managed IP networks | Resource-Priority header would only be used in managed IP networks | |||
| where all SIP servers were statefully aware of the RPH value within | where all SIP servers were statefully aware of the Resource-Priority | |||
| a transaction from the request message, maintaining state of the | value within a transaction from the request message, maintaining | |||
| value for the response. | state of the value for the response. | |||
| There is a need now to have stateless SIP servers have the | Yet, Section 4.7.3 of RFC 4412 states this | |||
| Resource-Priority header in responses in some environments. | ||||
| This document IANA registers the Resource-Priority header for usage | "If a stateful proxy has authorized a particular Resource-Priority | |||
| in responses. | level, and if it offers differentiated treatment to responses | |||
| containing Resource-Priority levels, the proxy SHOULD ignore any | ||||
| higher value contained in responses, to prevent colluding user | ||||
| agents from artificially raising the priority level." | ||||
| This document updates RFC 4412. | The above quote from RFC 4412 was concerning stateful proxies, and | |||
| there is a need now to have stateless SIP servers have the | ||||
| Resource-Priority header in responses in some environments, | ||||
| typically when surrounded by stateful proxy servers more towards the | ||||
| edge of the network. This is a design choice several vendors want | ||||
| to have, and they want SIP specifications to state what they want is | ||||
| not illegal, according to RFC(s). | ||||
| This document clarifies what was inconsistent in RFC 4412, by | ||||
| allowing a proxy to "amdr" an Resource-Priority value in a response, | ||||
| though this should only occur in certain network environments. | ||||
| There was a proposal to use SIP Resource-Priority in a SIP response, | ||||
| when that transaction's SIP request is received by a certain type of | ||||
| authorization server, to establish the namespace and priority-value | ||||
| for a dialog (as the signaling continued to set-up the call). This | ||||
| was loosely named "use-case#2" to establish how and why | ||||
| Resource-Priority is necessary in SIP responses. That user-case has | ||||
| been abandoned. What remains here is what was called "use-case#1" | ||||
| for how and why this update to RFC 4412 is necessary. | ||||
| This document updates RFC 4412, but requests no IANA changes. | ||||
| 2. Adding Resource-Priority Header in SIP Responses | 2. Adding Resource-Priority Header in SIP Responses | |||
| The following the correction of the table 2 entry for the | The following the correction of the table 2 entry for the | |||
| Resource-Priority header: | Resource-Priority header: | |||
| Header field where proxy INV ACK CAN BYE REG OPT PRA | Header field where proxy INV ACK CAN BYE REG OPT PRA | |||
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | |||
| Resource-Priority amdr o o o o o o o | Resource-Priority amdr o o o o o o o | |||
| Header field where proxy SUB NOT UPD MSG REF INF PUB | Header field where proxy SUB NOT UPD MSG REF INF PUB | |||
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | |||
| Resource-Priority amdr o o o o o o o | Resource-Priority amdr o o o o o o o | |||
| The difference is in the "where" column, in which the "R" was | The difference is in the "where" column, in which the "R" is | |||
| removed. The specific behaviors resulting from this are explained | removed. The specific behaviors resulting from this are explained | |||
| in the next 3 sub-sections. | in the next 3 sub-sections. | |||
| The above is to replace what is currently stated by RFC 4412, and | The above is to replace what is currently stated by RFC 4412, | |||
| what is IANA registered. | wherever this table is kept intact (knowing this table is not | |||
| normative anywhere within current SIP RFCs, but is often used as a | ||||
| reference by readers where a header is to be used, and what the | ||||
| expectations are within SIP Methods). | ||||
| 2.1 UAC Behavior | 3. Use-Case #1 and SIP Resource-Priority in Responses | |||
| The usage for SIP Resource-Priority in Responses has been described | ||||
| as "use-case#1". Use-Case#1 involves large networks that will no | ||||
| longer have to maintain stateful proxies throughout their networks | ||||
| in order to comply with RFC 4412. With this update to RFC 4412, | ||||
| large networks can now have transaction or dialog stateful servers | ||||
| at the perimeter of their network, but now can have the faster and | ||||
| more scalable stateless servers in the core of their networks - | ||||
| knowing no SIP requests or responses will be received by these | ||||
| stateless servers without first being processed by the stateful | ||||
| servers (i.e., at least providing the necessary | ||||
| authentication/authorization on the usage of Resource-Priority | ||||
| values in the messages). | ||||
| What was described briefly in the Intro section of this document as | ||||
| "use-case#2" (using a SIP response to carry an authorized new | ||||
| Resource-Priority header value to a server that will continue the | ||||
| transaction towards the UAS with this Resource-Priority in the | ||||
| request) MUST NOT be done. There are more appropriate protocols to | ||||
| do this function than a SIP response message. A SIP SUB/NOT | ||||
| transaction MAY be used for that function, but the scoping and | ||||
| defining of that operation is outside the scope of this document - | ||||
| which focuses exclusively on use-case#1, described above. | ||||
| 4. SIP Element Behaviors for Resource-Priority in Responses | ||||
| 4.1 UAC Behavior | ||||
| The UAC MAY process SIP responses containing the Resource-Priority | The UAC MAY process SIP responses containing the Resource-Priority | |||
| header according to the local policy of the network or UAC. If the | header according to the local policy of the network or UAC. If the | |||
| response header value is different than the original request value, | response header value is different than the original request value, | |||
| local policy SHOULD determine which to process the message based on, | it is RECOMMENDED local policy determine which bi-direction | |||
| but will likely be at the same priority-value as was in the request | priority-value to process the messages within this transaction on, | |||
| the UAC send to the UAS. | which will likely be at the same priority-value as was in the SIP | |||
| request. | ||||
| 2.2 UAS Behavior | 4.2 UAS Behavior | |||
| The UAS MAY include the Resource-Priority header in responses. | The UAS MAY include the Resource-Priority header in responses. | |||
| Typically the Resource-Priority header value will be the same in the | It is RECOMMENDED the Resource-Priority header value be the same in | |||
| response as it was in the request. The UAS MAY change the | the response as it was in the request. The UAS MAY change the | |||
| Resource-Priority header value, depending on local policy. Reasons | Resource-Priority header value, depending on local policy. Reasons | |||
| for this are outside the scope of this document. | for this are outside the scope of this document. | |||
| 2.3 Proxy Behavior | 4.3 Proxy Behavior | |||
| SIP Proxies MAY process the Resource-Priority header in responses; | SIP Proxies MAY process the Resource-Priority header in responses; | |||
| meaning, in certain environments, the choice of whether or not to | meaning, in certain environments, the choice of whether or not to | |||
| process the RPH will not be in doubt. This configuration choice | process the Resource-Priority value(s) in a response will not be in | |||
| could be on a per transaction basis, on a per server basis, or under | doubt. This configuration choice could be on a per transaction | |||
| some other parameter choice, all based on local policy of the proxy. | basis, on a per server basis, or under some other parameter choice, | |||
| all based on local policy of the proxy. This Resource-Priority | ||||
| This Resource-Priority header value MAY be the same or different | header value MAY be the same or different between request and | |||
| between request and response, depending on local policy downstream | response, depending on local policy downstream of a proxy (or UAS). | |||
| of this proxy. SIP Proxies MAY add or modify the Resource-Priority | SIP Proxies MAY add or modify the Resource-Priority header value in | |||
| header value in responses with this update. SIP Proxies MAY, but | responses with this update. SIP Proxies MAY, but SHOULD NOT delete | |||
| SHOULD NOT delete Resource-Priority header value in responses, as a | Resource-Priority header value in responses, as a Resource-Priority | |||
| Resource-Priority header value MAY have use other than at this | header value MAY have use other than at this particular proxy. | |||
| particular proxy. Local policy will determine this configuration. | Local policy will determine this configuration. | |||
| SIP Proxies SHOULD be able to ignore the header by configuration, in | SIP Proxies SHOULD be able to ignore the header by configuration, in | |||
| such environments that have RPH enabled SIP entities that are | such environments that have Resource-Priority enabled SIP entities | |||
| configured to remain aware of the RPH priority-value in a request | that are configured to remain aware of the Resource-Priority value | |||
| part of the transaction, or do not trust the possibility of a | in a request part of the transaction, or do not trust the | |||
| priority mark up, from what was in the request message. | possibility of a priority mark up, from what was in the request | |||
| message. | ||||
| 3. Acknowledgements | ||||
| Your name here, or, if you write a fair piece of text, you can | ||||
| become a co-author... | ||||
| 4. IANA Considerations | ||||
| The following is replace what is registered in the sip-parameters | ||||
| section of IANA for the Resource-Priority header: | ||||
| Header field where proxy INV ACK CAN BYE REG OPT PRA | 5. IANA Considerations | |||
| ---------------------------------------------------------------- | ||||
| Resource-Priority amdr o o o o o o o | ||||
| Header field where proxy SUB NOT UPD MSG REF INF PUB | There are no IANA considerations in this document. | |||
| ---------------------------------------------------------------- | ||||
| Resource-Priority amdr o o o o o o o | ||||
| [Editor's NOTE: since this registration replaces an existing | [NOTE: If this document is to be published as an RFC, this section | |||
| registration, but does not offer supporting text for what was not | can be removed.] | |||
| changed, does IANA give references to both this doc and RFC 4412 | ||||
| once this doc is RFC'd?] | ||||
| 5. Security Considerations | 6. Security Considerations | |||
| The Security considerations that apply to RFC 4412 [RFC4412] apply | The Security considerations that apply to RFC 4412 [RFC4412] apply | |||
| here. The only new security threat this document introduces | here. The only new security threat this document introduces | |||
| relative to RFC 4412 is in SIP entities that grant unconditional, | relative to RFC 4412 is in SIP entities that grant unconditional, | |||
| stateless, preferential treatment based on the RPH priority-value. | stateless, preferential treatment based on the Resource-Priority | |||
| This is a configuration issue, and not a implementation issue, and | value. This is a configuration issue, and not a implementation | |||
| operators should avoided allowing the configuration of blind SIP | issue, and operators should avoided allowing the configuration of | |||
| entities to process according to a priority marking without having a | blind SIP entities to process according to a priority marking | |||
| means of checking if the marking is valid. Invalid marking could | without having a means of checking if the marking is valid. Invalid | |||
| grant inappropriate treatment to SIP messages that do not deserve | marking could grant inappropriate treatment to SIP messages that do | |||
| it. | not deserve it. | |||
| 6. References | 7. Acknowledgements | |||
| 6.1 Normative References | Thanks to Janet Gunn, Keith Drage, Dean Willis, Tim Dwight and | |||
| Martin Dolly for the helpful comments. | ||||
| 8. References | ||||
| 8.1 Normative References | ||||
| [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate | [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate | |||
| Requirement Levels", RFC 2119, March 1997 | Requirement Levels", RFC 2119, March 1997 | |||
| [RFC4412] Schulzrinne, H., Polk, J., "Communications Resource | [RFC4412] Schulzrinne, H., Polk, J., "Communications Resource | |||
| Priority for the Session Initiation Protocol (SIP)", RFC | Priority for the Session Initiation Protocol (SIP)", RFC | |||
| 4411, Feb 2006 | 4411, Feb 2006 | |||
| [RFC3261] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. | [RFC3261] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. | |||
| Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: | Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: | |||
| Session Initiation Protocol", RFC 3261, May 2002. | Session Initiation Protocol", RFC 3261, May 2002. | |||
| Author's Addresses | Author's Addresses | |||
| James M. Polk | James Polk | |||
| 3913 Treemont Circle | 3913 Treemont Circle | |||
| Colleyville, Texas 76034 | Colleyville, Texas 76034 | |||
| USA | USA | |||
| Phone: +1-817-271-3552 | Phone: +1-817-271-3552 | |||
| Fax: none | Fax: none | |||
| Email: jmpolk@cisco.com | Email: jmpolk@cisco.com | |||
| Full Copyright Statement | Full Copyright Statement | |||
| Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2008). | |||
| This document is subject to the rights, licenses and restrictions | This document is subject to the rights, licenses and restrictions | |||
| contained in BCP 78, and except as set forth therein, the authors | contained in BCP 78, and except as set forth therein, the authors | |||
| retain all their rights. | retain all their rights. | |||
| This document and the information contained herein are provided on | This document and the information contained herein are provided on | |||
| an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE | an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE | |||
| REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE | REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE | |||
| IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL | IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL | |||
| WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY | WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY | |||
| End of changes. 32 change blocks. | ||||
| 86 lines changed or deleted | 143 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||