draft-ietf-drinks-spp-protocol-over-soap-05.txt   draft-ietf-drinks-spp-protocol-over-soap-06.txt 
DRINKS K. Cartwright DRINKS K. Cartwright
Internet-Draft V. Bhatia Internet-Draft V. Bhatia
Intended status: Standards Track TNS Intended status: Standards Track TNS
Expires: April 24, 2014 J-F. Mule Expires: October 24, 2014 J-F. Mule
CableLabs CableLabs
A. Mayrhofer A. Mayrhofer
enum.at GmbH enum.at GmbH
October 21, 2013 April 22, 2014
Session Peering Provisioning (SPP) Protocol over SOAP Session Peering Provisioning (SPP) Protocol over SOAP
draft-ietf-drinks-spp-protocol-over-soap-05 draft-ietf-drinks-spp-protocol-over-soap-06
Abstract Abstract
The Session Peering Provisioning Framework (SPPF) specifies the data The Session Peering Provisioning Framework (SPPF) specifies the data
model and the overall structure to provision session establishment model and the overall structure to provision session establishment
data into Session Data Registries and SIP Service Provider data data into Session Data Registries and SIP Service Provider data
stores. To utilize this framework one needs a transport protocol. stores. To utilize this framework one needs a transport protocol.
Given that Simple Object Access Protocol (SOAP) is currently widely Given that Simple Object Access Protocol (SOAP) is currently widely
used for messaging between elements of such provisioning systems, used for messaging between elements of such provisioning systems,
this document specifies the usage of SOAP (via HTTPS) as the this document specifies the usage of SOAP (via HTTPS) as the
skipping to change at page 1, line 44 skipping to change at page 1, line 44
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 April 24, 2014. This Internet-Draft will expire on October 24, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2014 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 Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. SOAP Features and Protocol Layering . . . . . . . . . . . . . 4 3. SOAP Features and Protocol Layering . . . . . . . . . . . . . 4
4. HTTP(s) Features and SPP Protocol over SOAP . . . . . . . . . 6 4. HTTP(s) Features and SPP Protocol over SOAP . . . . . . . . . 7
5. Authentication, Integrity and Confidentiality . . . . . . . . 7 5. Authentication, Integrity and Confidentiality . . . . . . . . 7
6. Language Identification . . . . . . . . . . . . . . . . . . . 7 6. Language Identification . . . . . . . . . . . . . . . . . . . 7
7. SPP Protocol SOAP Data Structures . . . . . . . . . . . . . . 7 7. SPP Protocol SOAP Data Structures . . . . . . . . . . . . . . 7
7.1. Concrete Object Key Types . . . . . . . . . . . . . . . . 7 7.1. Concrete Object Key Types . . . . . . . . . . . . . . . . 8
7.1.1. Generic Object Key . . . . . . . . . . . . . . . . . 8 7.1.1. Generic Object Key . . . . . . . . . . . . . . . . . 8
7.1.2. Public Identity Object Key . . . . . . . . . . . . . 9 7.1.2. Public Identity Object Key . . . . . . . . . . . . . 9
7.1.3. SED Group Offer Key . . . . . . . . . . . . . . . . . 10 7.1.3. SED Group Offer Key . . . . . . . . . . . . . . . . . 10
7.2. Operation Request and Response Structures . . . . . . . . 11 7.2. Operation Request and Response Structures . . . . . . . . 10
7.2.1. Add Operation Structure . . . . . . . . . . . . . . . 11 7.2.1. Add Operation Structure . . . . . . . . . . . . . . . 11
7.2.2. Delete Operation Structure . . . . . . . . . . . . . 14 7.2.2. Delete Operation Structure . . . . . . . . . . . . . 14
7.2.3. Accept Operation Structure . . . . . . . . . . . . . 17 7.2.3. Accept Operation Structure . . . . . . . . . . . . . 17
7.2.4. Reject Operation Structure . . . . . . . . . . . . . 20 7.2.4. Reject Operation Structure . . . . . . . . . . . . . 20
7.2.5. Batch Operation Structure . . . . . . . . . . . . . . 23 7.2.5. Batch Operation Structure . . . . . . . . . . . . . . 23
7.2.6. Get Operation Structure . . . . . . . . . . . . . . . 26 7.2.6. Get Operation Structure . . . . . . . . . . . . . . . 26
7.2.7. Get SED Group Offers Operation Structure . . . . . . 27 7.2.7. Get SED Group Offers Operation Structure . . . . . . 28
7.2.8. Generic Query Response . . . . . . . . . . . . . . . 29 7.2.8. Generic Query Response . . . . . . . . . . . . . . . 29
7.2.9. Get Server Details Operation Structure . . . . . . . 29 7.2.9. Get Server Details Operation Structure . . . . . . . 30
7.3. Response Codes and Messages . . . . . . . . . . . . . . . 31 7.3. Response Codes and Messages . . . . . . . . . . . . . . . 31
8. Protocol Operations . . . . . . . . . . . . . . . . . . . . . 33 8. Protocol Operations . . . . . . . . . . . . . . . . . . . . . 34
9. SPP Protocol over SOAP WSDL Definition . . . . . . . . . . . 33 9. SPP Protocol over SOAP WSDL Definition . . . . . . . . . . . 34
10. SPP Protocol over SOAP Examples . . . . . . . . . . . . . . . 44 10. SPP Protocol over SOAP Examples . . . . . . . . . . . . . . . 45
10.1. Add Destination Group . . . . . . . . . . . . . . . . . 45 10.1. Add Destination Group . . . . . . . . . . . . . . . . . 46
10.2. Add SED Records . . . . . . . . . . . . . . . . . . . . 46 10.2. Add SED Records . . . . . . . . . . . . . . . . . . . . 47
10.3. Add SED Records -- URIType . . . . . . . . . . . . . . . 48 10.3. Add SED Records -- URIType . . . . . . . . . . . . . . . 49
10.4. Add SED Group . . . . . . . . . . . . . . . . . . . . . 49 10.4. Add SED Group . . . . . . . . . . . . . . . . . . . . . 50
10.5. Add Public Identity -- Successful COR claim . . . . . . 50 10.5. Add Public Identity -- Successful COR claim . . . . . . 52
10.6. Add LRN . . . . . . . . . . . . . . . . . . . . . . . . 51 10.6. Add LRN . . . . . . . . . . . . . . . . . . . . . . . . 54
10.7. Add TN Range . . . . . . . . . . . . . . . . . . . . . . 53 10.7. Add TN Range . . . . . . . . . . . . . . . . . . . . . . 55
10.8. Add TN Prefix . . . . . . . . . . . . . . . . . . . . . 54 10.8. Add TN Prefix . . . . . . . . . . . . . . . . . . . . . 56
10.9. Enable Peering -- SED Group Offer . . . . . . . . . . . 55 10.9. Enable Peering -- SED Group Offer . . . . . . . . . . . 58
10.10. Enable Peering -- SED Group Offer Accept . . . . . . . . 56 10.10. Enable Peering -- SED Group Offer Accept . . . . . . . . 59
10.11. Add Egress Route . . . . . . . . . . . . . . . . . . . . 57 10.11. Add Egress Route . . . . . . . . . . . . . . . . . . . . 60
10.12. Remove Peering -- SED Group Offer Reject . . . . . . . . 59 10.12. Remove Peering -- SED Group Offer Reject . . . . . . . . 62
10.13. Get Destination Group . . . . . . . . . . . . . . . . . 60 10.13. Get Destination Group . . . . . . . . . . . . . . . . . 63
10.14. Get Public Identity . . . . . . . . . . . . . . . . . . 61 10.14. Get Public Identity . . . . . . . . . . . . . . . . . . 65
10.15. Get SED Group Request . . . . . . . . . . . . . . . . . 62 10.15. Get SED Group Request . . . . . . . . . . . . . . . . . 66
10.16. Get SED Group Offers Request . . . . . . . . . . . . . . 64 10.16. Get SED Group Offers Request . . . . . . . . . . . . . . 68
10.17. Get Egress Route . . . . . . . . . . . . . . . . . . . . 65 10.17. Get Egress Route . . . . . . . . . . . . . . . . . . . . 70
10.18. Delete Destination Group . . . . . . . . . . . . . . . . 66 10.18. Delete Destination Group . . . . . . . . . . . . . . . . 72
10.19. Delete Public Identity . . . . . . . . . . . . . . . . . 67 10.19. Delete Public Identity . . . . . . . . . . . . . . . . . 73
10.20. Delete SED Group Request . . . . . . . . . . . . . . . . 69 10.20. Delete SED Group Request . . . . . . . . . . . . . . . . 74
10.21. Delete SED Group Offers Request . . . . . . . . . . . . 70 10.21. Delete SED Group Offers Request . . . . . . . . . . . . 75
10.22. Delete Egress Route . . . . . . . . . . . . . . . . . . 71 10.22. Delete Egress Route . . . . . . . . . . . . . . . . . . 77
10.23. Batch Request . . . . . . . . . . . . . . . . . . . . . 72 10.23. Batch Request . . . . . . . . . . . . . . . . . . . . . 78
11. Security Considerations . . . . . . . . . . . . . . . . . . . 74 11. Security Considerations . . . . . . . . . . . . . . . . . . . 80
11.1. Vulnerabilities . . . . . . . . . . . . . . . . . . . . 75 11.1. Vulnerabilities . . . . . . . . . . . . . . . . . . . . 81
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 75 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 81
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 75 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 81
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 76 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 82
14.1. Normative References . . . . . . . . . . . . . . . . . . 76 14.1. Normative References . . . . . . . . . . . . . . . . . . 82
14.2. Informative References . . . . . . . . . . . . . . . . . 76 14.2. Informative References . . . . . . . . . . . . . . . . . 82
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 83
1. Introduction 1. Introduction
SPPF, defined in [I-D.draft-ietf-drinks-spp-framework], is best SPPF, defined in [I-D.draft-ietf-drinks-spp-framework], is best
supported by a transport and messaging infrastructure that is supported by a transport and messaging infrastructure that is
connection oriented, request-response oriented, easily secured, connection oriented, request-response oriented, easily secured,
supports propagation through firewalls in a standard fashion, and supports propagation through firewalls in a standard fashion, and
that is easily integrated into back-office systems. This is due to that is easily integrated into back-office systems. This is due to
the fact that the client side of SPPF is likely to be integrated with the fact that the client side of SPPF is likely to be integrated with
organizations' operational support systems that facilitate organizations' operational support systems that facilitate
skipping to change at page 4, line 50 skipping to change at page 5, line 7
to as the "document/literal wrapped style". This style is generally to as the "document/literal wrapped style". This style is generally
regarded as an optimal approach that enhances maintainability, regarded as an optimal approach that enhances maintainability,
comprehension, portability, and, to a certain extent, performance. comprehension, portability, and, to a certain extent, performance.
It is characterized by setting the soapAction binding style as It is characterized by setting the soapAction binding style as
"document", the soapAction encoding style as "literal", and then "document", the soapAction encoding style as "literal", and then
defining the SOAP messages to simply contain a single data element defining the SOAP messages to simply contain a single data element
that "wraps" a data structure containing all the required input or that "wraps" a data structure containing all the required input or
output data elements. The figure below illustrates this high level output data elements. The figure below illustrates this high level
technical structure as conceptual layers 3 through 6. technical structure as conceptual layers 3 through 6.
+-------------+ +-------------+
(1) | Transport |Example: (1) | Transport |Example:
| Protocol | TCP, TLS, BEEP, etc. | Protocol | TCP, TLS, BEEP, etc.
+-------------+
+-------------+ |
| V
V +-------------+
+-------------+ (2) | Message |Example:
(2) | Message |Example: | Envelope | HTTP, SOAP, None, etc.
| Envelope | HTTP, SOAP, None, etc. +-------------+
+-------------+ |
| V
V +--------------+
+--------------+ +----| SOAP |---+
+----| SOAP |---+ |(3) | Operation | |
|(3) | Operation | | Contains | +--------------+ | Contains
Contains | +--------------+ | Contains | Example: |
| Example: | V submitAddRqst V
V submitAddRqst V +--------------+ +-------------+
+--------------+ +-------------+ |SOAP Request | |SOAP Response|
|SOAP Request | |SOAP Response| Example: | Message | (4) | Message | Example:
Example: | Message | (4) | Message | Example: spppAdd | (Operation | | (Operation | spppAdd
spppAdd | (Operation | | (Operation | spppAdd RequestMsg | Input) | | Output) | ResponseMsg
RequestMsg | Input) | | Output) | ResponseMsg +--------------+ +-------------+
+--------------+ +-------------+ | |
| | Contains | | Contains
Contains | | Contains | |
| | V V
V V +---------------+ +---------------+
+---------------+ +---------------+ Example: | Wrapped | (5) | Wrapped | Example:
Example: | Wrapped | (5) | Wrapped | Example: spppAdd |Request Object | |Response Object| spppAdd
spppAdd |Request Object | |Response Object| spppAdd Request +---------------+ +---------------+ Response
Request +---------------+ +---------------+ Response | |
| | Contains | | Contains
Contains | | Contains | |
| | V V
V V +-------------+ +---------------+
+-------------+ +---------------+ | SPPF | | SPPF |
| SPPF | | SPPF | |XML Types | (6) | XML Types |
|XML Types | (6) | XML Types | +-------------+ +---------------+
+-------------+ +---------------+
Figure 1: Layering and Technical Structure of the SPP Protocol over Figure 1: Layering and Technical Structure of the SPP Protocol over
SOAP Messages SOAP Messages
The operations supported by SPP Protocol over SOAP are normatively The operations supported by SPP Protocol over SOAP are normatively
defined later in this document. Each SOAP operation defines a defined later in this document. Each SOAP operation defines a
request/input message and a response/output message. Each such request/input message and a response/output message. Each such
request and response message then contains a single object that wraps request and response message then contains a single object that wraps
the SPPF XML data types that comprise the inputs and the outputs, the SPPF XML data types that comprise the inputs and the outputs,
respectively, of the SOAP operation. respectively, of the SOAP operation.
skipping to change at page 9, line 9 skipping to change at page 9, line 9
have the same name "TestObj" and be associated with same have the same name "TestObj" and be associated with same
Registrant Id. Hence, to uniquely identify the object that Registrant Id. Hence, to uniquely identify the object that
represents a Destination Group with the name "TestObj", the type represents a Destination Group with the name "TestObj", the type
"DestGrp" must be specified when using this concrete ObjKeyType "DestGrp" must be specified when using this concrete ObjKeyType
structure to identify the Destination Group "TestObj". structure to identify the Destination Group "TestObj".
The object types in SPP Protocol over SOAP MUST adhere to the above The object types in SPP Protocol over SOAP MUST adhere to the above
definition of generic object key, and are defined as an enumeration definition of generic object key, and are defined as an enumeration
in the XML data structure as follows: in the XML data structure as follows:
<simpleType name="ObjKeyTypeEnum"> <simpleType name="ObjKeyTypeEnum">
<restriction base="token"> <restriction base="token">
<enumeration value="SedGrp"/> <enumeration value="SedGrp"/>
<enumeration value="DestGrp"/> <enumeration value="DestGrp"/>
<enumeration value="SedRec"/> <enumeration value="SedRec"/>
<enumeration value="EgrRte"/> <enumeration value="EgrRte"/>
</restriction> </restriction>
</simpleType> </simpleType>
7.1.2. Public Identity Object Key 7.1.2. Public Identity Object Key
Public Identity type objects can further be of various sub-types like Public Identity type objects can further be of various sub-types like
a Telephone Number (TN), Routing Number (RN), TN Prefix, URI, or a TN a Telephone Number (TN), Routing Number (RN), TN Prefix, URI, or a TN
Range and cannot be cleanly identified with the attributes in the Range and cannot be cleanly identified with the attributes in the
generic ObjKeyType. The definition of PubIdKeyType is as below: generic ObjKeyType. The definition of PubIdKeyType is as below:
<complexType name="PubIdKeyType"> <complexType name="PubIdKeyType">
<complexContent> <complexContent>
skipping to change at page 31, line 49 skipping to change at page 33, line 5
o The third and fourth digits of the response code indicate the o The third and fourth digits of the response code indicate the
individual message event within the category defines by the first individual message event within the category defines by the first
two digits. two digits.
The response codes are also categorized as to whether they are The response codes are also categorized as to whether they are
overall response codes that may only be returned in the overall response codes that may only be returned in the
"overallResult" data element in SPPF responses, or object level "overallResult" data element in SPPF responses, or object level
response codes that may only be returned in the "detailResult" response codes that may only be returned in the "detailResult"
element of the SPPF responses. element of the SPPF responses.
+----------+------------------------------------------+-------------+ +--------+--------------------------+-------------------------------+
| Result | Result Message | Overall or | | Result | Result Message | Overall or Object Level |
| Code | | Object | | Code | | |
| | | Level | +--------+--------------------------+-------------------------------+
+----------+------------------------------------------+-------------+ | 1000 | Request Succeeded. | Overall Response Code |
| 1000 | Request Succeeded. | Overall | | | | |
| | | Response | | 2000 | Request syntax invalid. | Overall Response Code |
| | | Code | | | | |
| | | | | 2001 | Request too large. | Overall Response Code |
| 2000 | Request syntax invalid. | Overall | | | MaxSupported:[Maximum | |
| | | Response | | | requests supported] | |
| | | Code | | | | |
| | | | | 2002 | Version not supported. | Overall Response Code |
| 2001 | Request too large. MaxSupported:[Maximum | Overall | | | | |
| | requests supported] | Response | | 2100 | Command invalid. | Overall Response Code |
| | | Code | | | | |
| | | | | 2300 | System temporarily | Overall Response Code |
| 2002 | Version not supported. | Overall | | | unavailable. | |
| | | Response | | | | |
| | | Code | | 2301 | Unexpected internal | Overall Response Code |
| | | | | | system or server error. | |
| 2100 | Command invalid. | Overall | | | | |
| | | Response | | 2101 | Attribute value invalid. | Object Level Response Code |
| | | Code | | | AttrName:[AttributeName] | |
| | | | | | AttrVal:[AttributeValue] | |
| 2300 | System temporarily unavailable. | Overall | | | | |
| | | Response | | 2102 | Object does not exist. | Object Level Response Code |
| | | Code | | | AttrName:[AttributeName] | |
| | | | | | AttrVal:[AttributeValue] | |
| 2301 | Unexpected internal system or server | Overall | | | | |
| | error. | Response | | 2103 | Object status or | Object Level Response Code |
| | | Code | | | ownership does not allow | |
| | | | | | for operation. | |
| 2101 | Attribute value invalid. | Object | | | AttrName:[AttributeName] | |
| | AttrName:[AttributeName] | Level | | | AttrVal:[AttributeValue] | |
| | AttrVal:[AttributeValue] | Response | +--------+--------------------------+-------------------------------+
| | | Code |
| | | |
| 2102 | Object does not exist. | Object |
| | AttrName:[AttributeName] | Level |
| | AttrVal:[AttributeValue] | Response |
| | | Code |
| | | |
| 2103 | Object status or ownership does not | Object |
| | allow for operation. | Level |
| | AttrName:[AttributeName] | Response |
| | AttrVal:[AttributeValue] | Code |
+----------+------------------------------------------+-------------+
Table 1: Response Codes Numbering Scheme and Messages Table 1: Response Codes Numbering Scheme and Messages
Response message for response code 2001 is "parameterized" with the Response message for response code 2001 is "parameterized" with the
following parameter: "[Maximum requests supported]". When the following parameter: "[Maximum requests supported]". When the
request is too large, this parameter MUST be used to indicate the request is too large, this parameter MUST be used to indicate the
maximum number of requests supported by the server in a single maximum number of requests supported by the server in a single
protocol operation. protocol operation.
Each of the object level response messages are "parameterized" with Each of the object level response messages are "parameterized" with
the following parameters: "AttributeName" and "AttributeValue". the following parameters: "AttributeName" and "AttributeValue".
skipping to change at page 76, line 15 skipping to change at page 82, line 13
Marrache, Otmar Lendl, Peter Saint-Andre, Richard Shockey, Samuel Marrache, Otmar Lendl, Peter Saint-Andre, Richard Shockey, Samuel
Melloul, Scott Hollenbeck, Sumanth Channabasappa, Syed Ali, and Vikas Melloul, Scott Hollenbeck, Sumanth Channabasappa, Syed Ali, and Vikas
Bhatia . Bhatia .
14. References 14. References
14.1. Normative References 14.1. Normative References
[I-D.draft-ietf-drinks-spp-framework] [I-D.draft-ietf-drinks-spp-framework]
Cartwright, K., Bhatia, V., Ali, S., and D. Schwartz, Cartwright, K., Bhatia, V., Ali, S., and D. Schwartz,
"Session Peering Provisioning Framework ", draft-ietf- "Session Peering Provisioning Framework", draft-ietf-
drinks-spp-framework-06 (work in progress), October 2013. drinks-spp-framework-06 (work in progress), October 2013.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., [RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
 End of changes. 15 change blocks. 
142 lines changed or deleted 130 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/