summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7878.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc7878.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc7878.txt')
-rw-r--r--doc/rfc/rfc7878.txt4651
1 files changed, 4651 insertions, 0 deletions
diff --git a/doc/rfc/rfc7878.txt b/doc/rfc/rfc7878.txt
new file mode 100644
index 0000000..fb61e0c
--- /dev/null
+++ b/doc/rfc/rfc7878.txt
@@ -0,0 +1,4651 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) K. Cartwright
+Request for Comments: 7878 V. Bhatia
+Category: Standards Track TNS
+ISSN: 2070-1721 J-F. Mule
+ Apple Inc.
+ A. Mayrhofer
+ nic.at GmbH
+ August 2016
+
+
+ Session Peering Provisioning (SPP) Protocol over SOAP
+
+Abstract
+
+ The Session Peering Provisioning Framework (SPPF) specifies the data
+ model and the overall structure to provision Session Establishment
+ Data (SED) into Session Data Registries and SIP Service Provider data
+ stores. To utilize this framework, one needs a substrate protocol.
+ Given that the Simple Object Access Protocol (SOAP) is currently
+ widely used for messaging between elements of such provisioning
+ systems, this document specifies the usage of SOAP (via HTTPS) as the
+ substrate protocol for SPPF. The benefits include leveraging
+ prevalent expertise and a higher probability that existing
+ provisioning systems will be able to easily migrate to using an SPPF-
+ based protocol.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc7878.
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 1]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+Copyright Notice
+
+ Copyright (c) 2016 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
+ 3. SOAP Features and Protocol Layering . . . . . . . . . . . . . 4
+ 4. HTTP(S) Features and SPPP over SOAP . . . . . . . . . . . . . 7
+ 5. Authentication, Integrity, and Confidentiality . . . . . . . 7
+ 6. Language Identification . . . . . . . . . . . . . . . . . . . 7
+ 7. SPPP SOAP Data Structures . . . . . . . . . . . . . . . . . . 7
+ 7.1. Concrete Object Key Types . . . . . . . . . . . . . . . . 8
+ 7.1.1. Generic Object Key . . . . . . . . . . . . . . . . . 8
+ 7.1.2. Public Identifier Object Key . . . . . . . . . . . . 9
+ 7.1.3. SED Group Offer Key . . . . . . . . . . . . . . . . . 10
+ 7.2. Operation Request and Response Structures . . . . . . . . 10
+ 7.2.1. Add Operation Structure . . . . . . . . . . . . . . . 10
+ 7.2.2. Delete Operation Structure . . . . . . . . . . . . . 13
+ 7.2.3. Accept Operation Structure . . . . . . . . . . . . . 16
+ 7.2.4. Reject Operation Structure . . . . . . . . . . . . . 19
+ 7.2.5. Batch Operation Structure . . . . . . . . . . . . . . 22
+ 7.2.6. Get Operation Structure . . . . . . . . . . . . . . . 25
+ 7.2.7. Get SED Group Offers Operation Structure . . . . . . 26
+ 7.2.8. Generic Query Response . . . . . . . . . . . . . . . 28
+ 7.2.9. Get Server Details Operation Structure . . . . . . . 29
+ 7.3. Response Codes and Messages . . . . . . . . . . . . . . . 30
+ 7.4. Minor Version Identifier . . . . . . . . . . . . . . . . 32
+ 8. Protocol Operations . . . . . . . . . . . . . . . . . . . . . 32
+ 9. SPPP over SOAP WSDL Definition . . . . . . . . . . . . . . . 32
+ 10. SPPP over SOAP Examples . . . . . . . . . . . . . . . . . . . 44
+ 10.1. Add Destination Group . . . . . . . . . . . . . . . . . 44
+ 10.2. Add SED Records . . . . . . . . . . . . . . . . . . . . 46
+ 10.3. Add SED Records -- URIType . . . . . . . . . . . . . . . 47
+ 10.4. Add SED Group . . . . . . . . . . . . . . . . . . . . . 49
+ 10.5. Add Public Identifier -- Successful COR Claim . . . . . 50
+
+
+
+Cartwright, et al. Standards Track [Page 2]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ 10.6. Add LRN . . . . . . . . . . . . . . . . . . . . . . . . 52
+ 10.7. Add TN Range . . . . . . . . . . . . . . . . . . . . . . 53
+ 10.8. Add TN Prefix . . . . . . . . . . . . . . . . . . . . . 54
+ 10.9. Enable Peering -- SED Group Offer . . . . . . . . . . . 56
+ 10.10. Enable Peering -- SED Group Offer Accept . . . . . . . . 58
+ 10.11. Add Egress Route . . . . . . . . . . . . . . . . . . . . 60
+ 10.12. Remove Peering -- SED Group Offer Reject . . . . . . . . 61
+ 10.13. Get Destination Group . . . . . . . . . . . . . . . . . 62
+ 10.14. Get Public Identifier . . . . . . . . . . . . . . . . . 64
+ 10.15. Get SED Group Request . . . . . . . . . . . . . . . . . 66
+ 10.16. Get SED Group Offers Request . . . . . . . . . . . . . . 68
+ 10.17. Get Egress Route . . . . . . . . . . . . . . . . . . . . 70
+ 10.18. Delete Destination Group . . . . . . . . . . . . . . . . 72
+ 10.19. Delete Public Identifier . . . . . . . . . . . . . . . . 73
+ 10.20. Delete SED Group Request . . . . . . . . . . . . . . . . 74
+ 10.21. Delete SED Group Offers Request . . . . . . . . . . . . 75
+ 10.22. Delete Egress Route . . . . . . . . . . . . . . . . . . 76
+ 10.23. Batch Request . . . . . . . . . . . . . . . . . . . . . 77
+ 11. Security Considerations . . . . . . . . . . . . . . . . . . . 80
+ 11.1. Vulnerabilities . . . . . . . . . . . . . . . . . . . . 80
+ 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 81
+ 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 81
+ 13.1. Normative References . . . . . . . . . . . . . . . . . . 81
+ 13.2. Informative References . . . . . . . . . . . . . . . . . 82
+ Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 82
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 83
+
+1. Introduction
+
+ SPPF, defined in [RFC7877], is best supported by a transport and
+ messaging infrastructure that is connection oriented, is request-
+ response oriented, is easily secured, supports propagation through
+ firewalls in a standard fashion, and 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 organizations' operational support
+ systems that facilitate transactional provisioning of user addresses
+ and their associated SED. The server side of SPPF is likely to
+ reside in a separate organization's network, resulting in the SPPF
+ provisioning transactions traversing the Internet as they are
+ propagated from the SPPF client to the SPPF server. Given the
+ current state of industry practice and technologies, SOAP and HTTP(S)
+ are well suited for this type of environment. This document
+ describes the specification for transporting SPPF XML structures,
+ using SOAP and HTTP(S) as substrates.
+
+ The specification in this document for transporting SPPF XML
+ structures over SOAP and HTTP(S) is primarily comprised of five
+ subjects: (1) a description of any applicable SOAP features, (2) any
+
+
+
+Cartwright, et al. Standards Track [Page 3]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ applicable HTTP features, (3) security considerations, (4) (perhaps
+ most importantly) the Web Services Description Language (WSDL)
+ definition for the SPP Protocol over SOAP, and (5) XML Schema
+ Definition (XSD) types that are "substrate" specific.
+
+2. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in [RFC2119].
+
+3. SOAP Features and Protocol Layering
+
+ The list of SOAP features that are explicitly used and required for
+ SPPP over SOAP are limited. Most SOAP features are not necessary for
+ SPPF. SPPP over SOAP primarily uses SOAP simply as a standard
+ message-envelope technology. The SOAP message envelope is comprised
+ of the SOAP header and body. As described in the SOAP specification
+ [SOAPREF], the SOAP header can contain optional, application-
+ specific, information about the message. The SOAP body contains the
+ SPPF message itself, whose structure is defined by the combination of
+ one of the WSDL operations defined in this document and the SPPF XML
+ data structures defined in this document and the SPPF document. SPPF
+ does not rely on any data elements in the SOAP header. All relevant
+ data elements are defined in the SPPF XML Schema described in
+ [RFC7877] and the SPPF WSDL types specification described in
+ Section 9 of this document.
+
+ WSDL is a widely standardized and adopted technology for defining the
+ top-level structures of the messages that are transported within the
+ body of a SOAP message. The WSDL definition for the SPPF SOAP
+ messages is defined later in this document, which imports by
+ reference the XML data types contained in the SPPF schema. The IANA
+ registry where the SPPF schema resides is described in "The IETF XML
+ Registry" [RFC3688].
+
+ There are multiple structural styles that WSDL allows. The best
+ practice for this type of application is what is sometimes referred
+ to as the "document/literal wrapped style". This style is generally
+ regarded as an optimal approach that enhances maintainability,
+ comprehension, portability, and, to a certain extent, performance.
+ It is characterized by setting the soapAction binding style as
+ "document", the soapAction encoding style as "literal", and then
+ defining the SOAP messages to simply contain a single data element
+ that "wraps" a data structure containing all the required input or
+ output data elements. The figure below illustrates this high-level
+ technical structure as conceptual layers 3 through 6.
+
+
+
+
+Cartwright, et al. Standards Track [Page 4]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ +-------------+
+ (1) | Transport |Example:
+ | Protocol | TCP, TLS, BEEP, etc.
+ +-------------+
+ |
+ V
+ +-------------+
+ (2) | Message |Example:
+ | Envelope | HTTP, SOAP, None, etc.
+ +-------------+
+ |
+ V
+ +--------------+
+ +----| SOAP |---+
+ |(3) | Operation | |
+ Contains | +--------------+ | Contains
+ | Example: |
+ V submitAddRqst V
+ +--------------+ +-------------+
+ | SOAP Request | |SOAP Response|
+ Example: | Message | (4) | Message | Example:
+ spppAdd | (Operation | | (Operation | spppAdd
+ RequestMsg | Input) | | Output) | ResponseMsg
+ +--------------+ +-------------+
+ | |
+ Contains | | Contains
+ | |
+ V V
+ +--------------+ +---------------+
+ Example: | Wrapped | (5) | Wrapped | Example:
+ spppAdd |Request Object| |Response Object| spppAdd
+ Request +--------------+ +---------------+ Response
+ | |
+ Contains | | Contains
+ | |
+ V V
+ +--------------+ +---------------+
+ | SPPF | | SPPF |
+ | XML Types | (6) | XML Types |
+ +--------------+ +---------------+
+
+ Legend:
+ BEEP = Blocks Extensible Exchange Protocol
+ TLS = Transport Layer Security
+
+ Figure 1: Layering and Technical Structure of SPPP over SOAP Messages
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 5]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The operations supported by SPPP over SOAP are normatively defined
+ later in this document. Each SOAP operation defines a request/input
+ message and a response/output message. Each such request and
+ response message then contains a single object that wraps the SPPF
+ XML data types that comprise the inputs and the outputs,
+ respectively, of the SOAP operation.
+
+ SOAP faults are not used by the SPPP over SOAP. All success and
+ error responses are specified in Section 7.3 of this document.
+ However, if a SOAP fault were to occur, perhaps due to failures in
+ the SOAP message handling layer of a SOAP library, the client
+ application should capture and handle the fault. Specifics on how to
+ handle such SOAP faults, if they should occur, will be specific to
+ the chosen SOAP implementation.
+
+ Implementations MUST use SOAP 1.2 [SOAPREF] or higher and MUST
+ support SOAP 1.2. Implementations SHOULD use WSDL 1.1 [WSDLREF] and
+ MUST NOT use earlier versions. Use of WSDL versions greater than 1.1
+ may introduce interoperability problems with implementations that use
+ 1.1.
+
+ SPPF is a request/reply framework that allows a client application to
+ submit provisioning data and query requests to a server. The SPPF
+ data structures are designed to be protocol agnostic. Concerns
+ regarding encryption, non-repudiation, and authentication are beyond
+ the scope of this document. For more details, please refer to
+ Section 4 ("Transport Substrate Protocol Requirements") of [RFC7877].
+
+ As illustrated in the previous diagram, SPPF can be viewed as a set
+ of layers that collectively define the structure of an SPPF request
+ and response. Layers 1 and 2 represent the transport, envelope, and
+ authentication technologies. This document defines layers 3, 4, 5,
+ and 6 for SPPP over SOAP.
+
+ 1. Layer 1: The transport protocol layer represents the
+ communication mechanism between the client and server. SPPF can
+ be layered over any substrate protocol that provides a set of
+ basic requirements defined in Section 4 of [RFC7877].
+
+ 2. Layer 2: The message-envelope layer is optional but can provide
+ features that are above the transport technology layer but below
+ the application messaging layer. Technologies such as HTTP and
+ SOAP are examples of message-envelope technologies.
+
+ 3. Layers 3, 4, 5, and 6: The operation and message layers provide
+ an envelope-independent and substrate-independent wrapper for the
+ SPPF data model objects that are being acted on (created,
+ modified, and queried).
+
+
+
+Cartwright, et al. Standards Track [Page 6]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+4. HTTP(S) Features and SPPP over SOAP
+
+ While SOAP is not tied to HTTP(S), for reasons described in the
+ Introduction, HTTP(S) is a good choice as the substrate protocol for
+ the SPP Protocol SOAP messages. HTTP 1.1 includes the "persistent
+ connection" feature, which allows multiple HTTP request/response
+ pairs to be transported across a single HTTP connection. This is an
+ important performance optimization feature, particularly when the
+ connection is an HTTPS connection where the relatively time-consuming
+ TLS handshake has occurred.
+
+ Implementations compliant with this document MUST use HTTP 1.1
+ [RFC7230] or higher. Also, implementations SHOULD use persistent
+ connections.
+
+5. Authentication, Integrity, and Confidentiality
+
+ To accomplish authentication, conforming SPPP over SOAP clients and
+ servers MUST use HTTP Digest Authentication as defined in [RFC7235].
+
+ To achieve integrity and privacy, conforming SPPP over SOAP clients
+ and servers MUST support TLS as defined in [RFC5246] as the secure
+ transport mechanism. Use of TLS MUST follow the recommendations
+ contained in [RFC7525]
+
+6. Language Identification
+
+ Section 9 of [RFC7877] requires protocols to provide a mechanism to
+ transmit language tags together with human-readable messages. When
+ conforming SPPP SOAP servers use such tagging, the XML "lang"
+ attribute ([W3C.REC-xml-20081126], Section 2.12) MUST be used.
+ Clients MAY use the HTTP "Accept-Language" header field (see
+ Section 5.3.5 of [RFC7231]) in order to indicate their language
+ preference.
+
+7. SPPP SOAP Data Structures
+
+ SPPP over SOAP uses a set of XML-based data structures for all the
+ supported operations and any parameters to which those operations are
+ applied. As also mentioned earlier in this document, these XML
+ structures are envelope independent and substrate independent. Refer
+ to "Protocol Operations" (Section 8) of this document for a
+ description of all the operations that MUST be supported.
+
+ The following sections describe the definitions of all the XML data
+ structures.
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 7]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.1. Concrete Object Key Types
+
+ Certain operations in SPPF require an object key that uniquely
+ identifies the object(s) on which a given operation needs to be
+ performed. SPPF defines the XML structure of any such object key in
+ an abstract manner and delegates the concrete representation to any
+ conforming substrate protocol. The following subsections define the
+ various types of concrete object key types used in various operations
+ in SPPP over SOAP.
+
+7.1.1. Generic Object Key
+
+ Most objects in SPPP over SOAP are uniquely identified by the
+ attributes in the generic object key (Refer to "Generic Object Key
+ Type", Section 5.2.1 of [RFC7877], for details). The concrete XML
+ representation of ObjKeyType is as below:
+
+ <complexType name="ObjKeyType">
+ <complexContent>
+ <extension base="sppfb:ObjKeyType">
+ <sequence>
+ <element name="rant" type="sppfb:OrgIdType"/>
+ <element name="name" type="sppfb:ObjNameType"/>
+ <element name="type" type="sppfs:ObjKeyTypeEnum"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ The ObjKeyType has the data elements as described below:
+
+ o rant: The identifier of the Registrant organization that owns the
+ object.
+
+ o name: The character string that contains the name of the object.
+
+ o type: The enumeration value that represents the type of SPPF
+ object. For example, both a Destination Group and a SED Group can
+ have the same name "TestObj" and be associated with the same
+ Registrant ID. Hence, to uniquely identify the object that
+ represents a Destination Group with the name "TestObj", the type
+ "DestGrp" must be specified when using this concrete ObjKeyType
+ structure to identify the Destination Group "TestObj".
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 8]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The object types in SPPP over SOAP MUST adhere to the above
+ definition of generic object key and are defined as an enumeration in
+ the XML data structure as follows:
+
+ <simpleType name="ObjKeyTypeEnum">
+ <restriction base="token">
+ <enumeration value="SedGrp"/>
+ <enumeration value="DestGrp"/>
+ <enumeration value="SedRec"/>
+ <enumeration value="EgrRte"/>
+ </restriction>
+ </simpleType>
+
+7.1.2. Public Identifier Object Key
+
+ Public Identifier type objects can further be of various sub-types
+ like a Telephone Number (TN), Routing Number (RN), TN Prefix, URI, or
+ TN Range and cannot be cleanly identified with the attributes in the
+ generic ObjKeyType. The definition of PubIdKeyType is as below:
+
+ <complexType name="PubIdKeyType">
+ <complexContent>
+ <extension base="sppfb:PubIdKeyType">
+ <sequence>
+ <element name="rant" type="sppfb:OrgIdType"/>
+ <choice>
+ <element name="number"
+ type="sppfb:NumberType"/>
+ <element name="range"
+ type="sppfb:NumberRangeType"/>
+ <element name="uri"
+ type="anyURI"/>
+ </choice>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ The PubIdKeyType has data elements, as described below:
+
+ o rant: The identifier of the Registrant organization that owns the
+ object.
+
+ o number: An element of type NumberType (refer to Section 12 of
+ [RFC7877]) that contains the value and type of a number.
+
+ o range: An element of type NumberRangeType (refer to Section 12 of
+ [RFC7877]) that contains a range of numbers.
+
+
+
+Cartwright, et al. Standards Track [Page 9]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ o uri: A value that represents a Public Identifier.
+
+ Any instance of PubIdKeyType MUST contain exactly one element from
+ the following set of elements: "number", "range", "uri".
+
+7.1.3. SED Group Offer Key
+
+ In addition to the attributes in the generic ObjKeyType, a SED Group
+ Offer object is uniquely identified by the organization ID of the
+ organization to whom a SED Group has been offered. The definition of
+ SedGrpOfferKeyType is as below:
+
+ <complexType name="SedGrpOfferKeyType">
+ <complexContent>
+ <extension base="sppfb:SedGrpOfferKeyType">
+ <sequence>
+ <element name="sedGrpKey" type="sppfs:ObjKeyType"/>
+ <element name="offeredTo" type="sppfb:OrgIdType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ The SedGrpOfferKeyType has the data elements as described below:
+
+ o sedGrpKey: Identifies the SED Group that was offered.
+
+ o offeredTo: The organization ID of the organization that was
+ offered the SED Group object identified by the sedGrpKey.
+
+7.2. Operation Request and Response Structures
+
+ An SPPF client interacts with an SPPF server by sending one or more
+ requests to the server and by receiving corresponding responses from
+ the server. The basic set of operations that an SPPF client can
+ submit to an SPPF server and the semantics of those operations are
+ defined in "Framework Operations", Section 7 of [RFC7877]. The
+ following subsections describe the XML data structures that are used
+ for each of those types of operations for an SPPP over SOAP
+ implementation.
+
+7.2.1. Add Operation Structure
+
+ In order to add (or modify) an object in the Registry, an authorized
+ entity can send the spppAddRequest to the Registry.
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 10]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ An SPPP over SOAP Add request is wrapped within the <spppAddRequest>
+ element while an SPPP over SOAP Add response is wrapped within an
+ <spppAddResponse> element. The following sub-sections describe the
+ <spppAddRequest> and <spppAddResponse> elements. Refer to Section 10
+ for an example of an Add operation on each type of SPPF object.
+
+7.2.1.1. Add Request
+
+ An SPPP over SOAP Add request definition is contained within the
+ generic <spppAddRequest> element.
+
+ <element name="spppAddRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="obj" type="sppfb:BasicObjType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ The data elements within the <spppAddRequest> element are described
+ as follows:
+
+ o clientTransId: Zero or one client-generated transaction ID that,
+ within the context of the SPPF client, identifies this request.
+ This value can be used at the discretion of the SPPF client to
+ track, log, or correlate requests and their responses. The SPPF
+ server MUST echo back this value to the client in the
+ corresponding response to the incoming request. The SPPF server
+ will not check this value for uniqueness.
+
+ o minorVer: Zero or one minor version identifier, as defined in
+ Section 7.4.
+
+ o obj: One or more elements of abstract type BasicObjType (defined
+ in [RFC7877]). Each element contains all the attributes of an
+ SPPF object that the client is requesting the SPPF server to add.
+ Refer to Section 3.1 of [RFC7877] for the XML structure of all
+ concrete types, for various SPPF objects, that extend from
+ abstract BasicObjType and hence are eligible to be passed into
+ this element. The elements are processed by the SPPF server in
+ the order in which they are included in the request. With respect
+ to the handling of error conditions, conforming SPPP SOAP servers
+ MUST stop processing BasicObjType elements in the request at the
+
+
+
+Cartwright, et al. Standards Track [Page 11]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ first error and roll back any BasicObjType elements that had
+ already been processed for that add request ("stop and roll
+ back").
+
+7.2.1.2. Add Response
+
+ An SPPP over SOAP add response object is contained within the generic
+ <spppAddResponse> element. This response structure is used for all
+ types of SPPF objects that are provisioned by the SPPF client.
+
+ <element name="spppAddResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId" type="sppfb:TransIdType"
+ minOccurs="0"/>
+ <element name="serverTransId" type="sppfb:TransIdType"/>
+ <element name="overallResult" type="sppfs:ResultCodeType"/>
+ <element name="detailResult" type="sppfs:ObjResultCodeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <complexType name="ResultCodeType">
+ <sequence>
+ <element name="code" type="int"/>
+ <element name="msg" type="string"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="ObjResultCodeType">
+ <complexContent>
+ <extension base="sppfs:ResultCodeType">
+ <sequence>
+ <element name="obj" type="sppfb:BasicObjType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ An <spppAddResponse> contains the elements necessary for the SPPF
+ client to precisely determine the overall result of the request, and
+ if an error occurs, it provides information about the specific
+ object(s) that caused the error.
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 12]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The data elements within the SPPP over SOAP Add response are
+ described as follows:
+
+ o clientTransId: Zero or one client transaction ID. This value is
+ simply an echo of the client transaction ID that the SPPF client
+ passed into the SPPF update request. When included in the
+ request, the SPPF server MUST return it in the corresponding
+ response message.
+
+ o serverTransId: Exactly one server transaction ID that identifies
+ this request for tracking purposes. This value MUST be unique for
+ a given SPPF server.
+
+ o overallResult: Exactly one response code and message pair that
+ explicitly identifies the result of the request. See Section 7.3
+ for further details.
+
+ o detailResult: An optional response code, response message, and
+ BasicObjType (as defined in [RFC7877]) triplet. This element will
+ be present only if an object-level error has occurred. It
+ indicates the error condition and the exact request object that
+ contributed to the error. The response code will reflect the
+ exact error. See Section 7.3 for further details.
+
+7.2.2. Delete Operation Structure
+
+ In order to remove an object from the Registry, an authorized entity
+ can send the spppDelRequest into the Registry. An SPPP over SOAP
+ Delete request is wrapped within the <spppDelRequest> element while
+ an SPPP over SOAP Delete response is wrapped within the generic
+ <spppDelResponse> element. The following subsections describe the
+ <spppDelRequest> and <spppDelResponse> elements. Refer to Section 10
+ for an example of the Delete operation on each type of SPPF object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 13]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.2.1. Delete Request
+
+ An SPPP over SOAP Delete request definition is contained within the
+ generic <spppDelRequest> element.
+
+ <element name="spppDelRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="objKey" type="sppfb:ObjKeyType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ The data elements within the <spppDelRequest> element are described
+ as follows:
+
+ o clientTransId: Zero or one client-generated transaction ID that,
+ within the context of the SPPF client, identifies this request.
+ This value can be used at the discretion of the SPPF client to
+ track, log, or correlate requests and their responses. The SPPF
+ server MUST echo back this value to the client in the
+ corresponding response to the incoming request. SPPF server will
+ not check this value for uniqueness.
+
+ o minorVer: Zero or one minor version identifier, as defined in
+ Section 7.4.
+
+ o objKey: One or more elements of abstract type ObjKeyType (as
+ defined in [RFC7877]). Each element contains attributes that
+ uniquely identify the object that the client is requesting the
+ server to delete. Refer to Section 7.1 for a description of all
+ concrete object key types, for various SPPF objects, which are
+ eligible to be passed into this element. The elements are
+ processed by the SPPF server in the order in which they are
+ included in the request. With respect to the handling of error
+ conditions, conforming SPPP SOAP servers MUST stop processing
+ ObjKeyType elements in the request at the first error and roll
+ back any ObjKeyType elements that had already been processed for
+ that Delete request ("stop and roll back").
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 14]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.2.2. Delete Response
+
+ An SPPP over SOAP delete response object is contained within the
+ generic <sppDeleteResponse> element. This response structure is used
+ for a Delete request on all types of SPPF objects that are
+ provisioned by the SPPF client.
+
+ <element name="spppDelResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId" type="sppfb:TransIdType"
+ minOccurs="0"/>
+ <element name="serverTransId" type="sppfb:TransIdType"/>
+ <element name="overallResult" type="sppfs:ResultCodeType"/>
+ <element name="detailResult" type="sppfs:ObjKeyResultCodeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <complexType name="ResultCodeType">
+ <sequence>
+ <element name="code" type="int"/>
+ <element name="msg" type="string"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="ObjKeyResultCodeType">
+ <complexContent>
+ <extension base="sppfs:ResultCodeType">
+ <sequence>
+ <element name="objKey" type="sppfb:ObjKeyType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ An <spppDelResponse> contains the elements necessary for the SPPF
+ client to precisely determine the overall result of the request, and
+ if an error occurs, it provides information about the specific object
+ key(s) that caused the error.
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 15]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The data elements within the SPPP over SOAP Delete response are
+ described as follows:
+
+ o clientTransId: Zero or one client transaction ID. This value is
+ simply an echo of the client transaction ID that the SPPF client
+ passed into the SPPF update request. When included in the
+ request, the SPPF server MUST return it in the corresponding
+ response message.
+
+ o serverTransId: Exactly one server transaction ID that identifies
+ this request for tracking purposes. This value MUST be unique for
+ a given SPPF server.
+
+ o overallResult: Exactly one response code and message pair that
+ explicitly identifies the result of the request. See Section 7.3
+ for further details.
+
+ o detailResult: An optional response code, response message, and
+ ObjKeyType (as defined in [RFC7877]) triplet. This element will
+ be present only if a specific object key level error has occurred.
+ It indicates the error condition and the exact request object key
+ that contributed to the error. The response code will reflect the
+ exact error. See Section 7.3 for further details.
+
+7.2.3. Accept Operation Structure
+
+ In SPPF, a SED Group Offer can be accepted or rejected by, or on
+ behalf of, the Registrant to whom the SED Group has been offered
+ (refer to Section 3.1 of [RFC7877] for a description of the SED Group
+ Offer object). The Accept operation is used to accept such SED Group
+ Offers by, or on behalf of, the Registrant. The request structure
+ for an SPPP over SOAP Accept operation is wrapped within the
+ <spppAcceptRequest> element while an SPPP over SOAP Accept response
+ is wrapped within the generic <spppAcceptResponse> element. The
+ following subsections describe the <spppAcceptRequest> and
+ <spppAcceptResponse> elements. Refer to Section 10 for an example of
+ the Accept operation on a SED Group Offer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 16]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.3.1. Accept Request Structure
+
+ An SPPP over SOAP Accept request definition is contained within the
+ generic <sppAcceptRequest> element.
+
+ <element name="spppAcceptRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="sedGrpOfferKey"
+ type="sppfs:SedGrpOfferKeyType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ The data elements within the <spppAcceptRequest> element are
+ described as follows:
+
+ o clientTransId: Zero or one client-generated transaction ID that,
+ within the context of the SPPF client, identifies this request.
+ This value can be used at the discretion of the SPPF client to
+ track, log, or correlate requests and their responses. The SPPF
+ server MUST echo back this value to the client in the
+ corresponding response to the incoming request. The SPPF server
+ will not check this value for uniqueness.
+
+ o minorVer: Zero or one minor version identifier, as defined in
+ Section 7.4.
+
+ o sedGrpOfferKey: One or more elements of type SedGrpOfferKeyType
+ (as defined in this document). Each element contains attributes
+ that uniquely identify a SED Group Offer that the client is
+ requesting the server to accept. The elements are processed by
+ the SPPF server in the order in which they are included in the
+ request. With respect to the handling of error conditions,
+ conforming SPPP SOAP servers MUST stop processing
+ SedGrpOfferKeyType elements in the request at the first error and
+ roll back any SedGrpOfferKeyType elements that had already been
+ processed for that Accept request ("stop and roll back").
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 17]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.3.2. Accept Response
+
+ An SPPP over SOAP accept response structure is contained within the
+ generic <sppAcceptResponse> element. This response structure is used
+ for an Accept request on a SED Group Offer.
+
+ <element name="spppAcceptResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId" type="sppfb:TransIdType"
+ minOccurs="0"/>
+ <element name="serverTransId" type="sppfb:TransIdType"/>
+ <element name="overallResult" type="sppfs:ResultCodeType"/>
+ <element name="detailResult"
+ type="sppfs:SedGrpOfferKeyResultCodeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <complexType name="ResultCodeType">
+ <sequence>
+ <element name="code" type="int"/>
+ <element name="msg" type="string"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="SedGrpOfferKeyResultCodeType">
+ <complexContent>
+ <extension base="sppfs:ResultCodeType">
+ <sequence>
+ <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ An <spppAcceptResponse> contains the elements necessary for the SPPF
+ client to precisely determine the overall result of the request, and
+ if an error occurs, it provides information about the specific SED
+ Group Offer key(s) that caused the error.
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 18]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The data elements within the SPPP over SOAP Accept response are
+ described as follows:
+
+ o clientTransId: Zero or one client transaction ID. This value is
+ simply an echo of the client transaction ID that the SPPF client
+ passed into the SPPF update request. When included in the
+ request, the SPPF server MUST return it in the corresponding
+ response message.
+
+ o serverTransId: Exactly one server transaction ID that identifies
+ this request for tracking purposes. This value MUST be unique for
+ a given SPPF server.
+
+ o overallResult: Exactly one response code and message pair that
+ explicitly identifies the result of the request. See Section 7.3
+ for further details.
+
+ o detailResult: An optional response code, response message, and
+ SedGrpOfferKeyType (as defined in this document) triplet. This
+ element will be present only if any specific SED Group Offer key
+ level error has occurred. It indicates the error condition and
+ the exact request SED Group Offer key that contributed to the
+ error. The response code will reflect the exact error. See
+ Section 7.3 for further details.
+
+7.2.4. Reject Operation Structure
+
+ In SPPF, a SED Group Offer can be accepted or rejected by, or on
+ behalf of, the Registrant to whom the SED Group has been offered
+ (refer to "Framework Data Model Objects", Section 6 of [RFC7877] for
+ a description of the SED Group Offer object). The Reject operation
+ is used to reject such SED Group Offers by, or on behalf of, the
+ Registrant. The request structure for an SPPP over SOAP Reject
+ operation is wrapped within the <spppRejectRequest> element while an
+ SPPP over SOAP Reject response is wrapped within the generic
+ <spppRejecResponse> element. The following subsections describe the
+ <spppRejectRequest> and <spppRejecResponse> elements. Refer to
+ Section 10 for an example of the Reject operation on a SED Group
+ Offer.
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 19]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.4.1. Reject Request
+
+ An SPPP over SOAP Reject request definition is contained within the
+ generic <spppRejectRequest> element.
+
+ <element name="spppRejectRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="sedGrpOfferKey"
+ type="sppfs:SedGrpOfferKeyType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ The data elements within the <spppRejectRequest> element are
+ described as follows:
+
+ o clientTransId: Zero or one client-generated transaction ID that,
+ within the context of the SPPF client, identifies this request.
+ This value can be used at the discretion of the SPPF client to
+ track, log, or correlate requests and their responses. The SPPF
+ server MUST echo back this value to the client in the
+ corresponding response to the incoming request. The SPPF server
+ will not check this value for uniqueness.
+
+ o minorVer: Zero or one minor version identifier, as defined in
+ Section 7.4.
+
+ o sedGrpOfferKey: One or more elements of type SedGrpOfferKeyType
+ (as defined in this document). Each element contains attributes
+ that uniquely identify a SED Group Offer that the client is
+ requesting the server to reject. The elements are processed by
+ the SPPF server in the order in which they are included in the
+ request. With respect to the handling of error conditions,
+ conforming SPPF servers MUST stop processing SedGrpOfferKeyType
+ elements in the request at the first error and roll back any
+ SedGrpOfferKeyType elements that had already been processed for
+ that Reject request ("stop and roll back").
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 20]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.4.2. Reject Response
+
+ An SPPP over SOAP reject response structure is contained within the
+ generic <sppRejectResponse> element. This response structure is used
+ for a Reject request on a SED Group Offer.
+
+ <element name="spppRejectResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId" type="sppfb:TransIdType"
+ minOccurs="0"/>
+ <element name="serverTransId" type="sppfb:TransIdType"/>
+ <element name="overallResult" type="sppfs:ResultCodeType"/>
+ <element name="detailResult"
+ type="sppfs:SedGrpOfferKeyResultCodeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <complexType name="ResultCodeType">
+ <sequence>
+ <element name="code" type="int"/>
+ <element name="msg" type="string"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="SedGrpOfferKeyResultCodeType">
+ <complexContent>
+ <extension base="sppfs:ResultCodeType">
+ <sequence>
+ <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ An <spppRejectResponse> contains the elements necessary for the SPPF
+ client to precisely determine the overall result of the request, and
+ if an error occurs, it provides information about the specific SED
+ Group Offer key(s) that caused the error.
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 21]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The data elements within the SPPP over SOAP Reject response are
+ described as follows:
+
+ o clientTransId: Zero or one client transaction ID. This value is
+ simply an echo of the client transaction ID that the SPPF client
+ passed into the SPPF update request. When included in the
+ request, the SPPF server MUST return it in the corresponding
+ response message.
+
+ o serverTransId: Exactly one server transaction ID that identifies
+ this request for tracking purposes. This value MUST be unique for
+ a given SPPF server.
+
+ o overallResult: Exactly one response code and message pair that
+ explicitly identifies the result of the request. See Section 7.3
+ for further details.
+
+ o detailResult: An optional response code, response message, and
+ SedGrpOfferKeyType (as defined in this document) triplet. This
+ element will be present only if any specific SED Group Offer key
+ level error has occurred. It indicates the error condition and
+ the exact request SED Group Offer key that contributed to the
+ error. The response code will reflect the exact error. See
+ Section 7.3 for further details.
+
+7.2.5. Batch Operation Structure
+
+ An SPPP over SOAP Batch request XML structure allows the SPPF client
+ to send any of the Add, Del, Accept, or Reject operations together in
+ one single request. This gives an SPPF client the flexibility to use
+ one single request structure to perform more than operations (verbs).
+ The batch request structure is wrapped within the <spppBatchRequest>
+ element while an SPPF Batch response is wrapped within the
+ <spppBatchResponse> element. The following subsections describe the
+ <spppBatchRequest> and <spppBatchResponse> elements. Refer to
+ Section 10 for an example of a Batch operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 22]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.5.1. Batch Request Structure
+
+ An SPPP over SOAP Batch request definition is contained within the
+ generic <spppBatchRequest> element.
+
+ <element name="spppBatchRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <choice minOccurs="1" maxOccurs="unbounded">
+ <element name="addObj" type="sppfb:BasicObjType"/>
+ <element name="delObj" type="sppfb:ObjKeyType"/>
+ <element name="acceptSedGrpOffer"
+ type="sppfs:SedGrpOfferKeyType"/>
+ <element name="rejectSedGrpOffer"
+ type="sppfs:SedGrpOfferKeyType"/>
+ </choice>
+ </sequence>
+ </complexType>
+ </element>
+
+ The data elements within the <sppBatchRequest> element are described
+ as follows:
+
+ o clientTransId: Zero or one client-generated transaction ID that,
+ within the context of the SPPF client, identifies this request.
+ This value can be used at the discretion of the SPPF client to
+ track, log, or correlate requests and their responses. The SPPF
+ server MUST echo back this value to the client in the
+ corresponding response to the incoming request. The SPPF server
+ will not check this value for uniqueness.
+
+ o minorVer: Zero or one minor version identifier, as defined in
+ Section 7.4.
+
+ o addObj: One or more elements of abstract type BasicObjType where
+ each element identifies an object that needs to be added.
+
+ o delObj: One or more elements of abstract type ObjKeyType where
+ each element identifies a key for the object that needs to be
+ deleted .
+
+ o acceptSedGrpOffer: One or more elements of type SedGrpOfferKeyType
+ where each element identifies a SED Group Offer that needs to be
+ accepted.
+
+
+
+Cartwright, et al. Standards Track [Page 23]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ o rejectSedGrpOffer: One or more elements of type SedGrpOfferKeyType
+ where each element identifies a SED Group Offer that needs to be
+ rejected.
+
+ With respect to the handling of error conditions, conforming SPPP
+ SOAP servers MUST stop processing elements in the request at the
+ first error and roll back any elements that had already been
+ processed for that Batch request ("stop and roll back").
+
+7.2.5.2. Batch Response
+
+ An SPPP over SOAP batch response structure is contained within the
+ generic <sppBatchResponse> element. This response structure is used
+ for a Batch request that contains many different types of SPPF
+ operations.
+
+ <element name="spppBatchResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId" type="sppfb:TransIdType"
+ minOccurs="0"/>
+ <element name="serverTransId" type="sppfb:TransIdType"/>
+ <element name="overallResult" type="sppfs:ResultCodeType"/>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="addResult"
+ type="sppfs:ObjResultCodeType"/>
+ <element name="delResult"
+ type="sppfs:ObjKeyResultCodeType"/>
+ <element name="acceptResult"
+ type="sppfs:SedGrpOfferKeyResultCodeType"/>
+ <element name="rejectResult"
+ type="sppfs:SedGrpOfferKeyResultCodeType"/>
+ </choice>
+ </sequence>
+ </complexType>
+ </element>
+
+ An <spppBatchResponse> contains the elements necessary for an SPPF
+ client to precisely determine the overall result of various
+ operations in the request, and if an error occurs, it provides
+ information about the specific objects or keys in the request that
+ caused the error.
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 24]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The data elements within the SPPP over SOAP Batch response are
+ described as follows:
+
+ o clientTransId: Zero or one client transaction ID. This value is
+ simply an echo of the client transaction ID that the SPPF client
+ passed into the SPPF update request. When included in the
+ request, the SPPF server MUST return it in the corresponding
+ response message.
+
+ o serverTransId: Exactly one server transaction ID that identifies
+ this request for tracking purposes. This value MUST be unique for
+ a given SPPF server.
+
+ o overallResult: Exactly one response code and message pair that
+ explicitly identifies the result of the request. See Section 7.3
+ for further details.
+
+ o addResult: One or more elements of type ObjResultCodeType where
+ each element identifies the result code, result message, and the
+ specific object to which the result relates.
+
+ o delResult: One or more elements of type ObjKeyResultCodeType where
+ each element identifies the result code, result message, and the
+ specific object key to which the result relates.
+
+ o acceptResult: One or more elements of type
+ SedGrpOfferKeyResultCodeType where each element identifies the
+ result code, result message, and the specific SED Group Offer key
+ to which the result relates.
+
+ o rejectResult: One or more elements of type
+ SedGrpOfferKeyResultCodeType where each element identifies the
+ result code, result message, and the specific SED Group Offer key
+ to which the result relates.
+
+7.2.6. Get Operation Structure
+
+ In order to query the details of an object from the Registry, an
+ authorized entity can send the spppGetRequest to the Registry with a
+ GetRqstType XML data structure containing one or more object keys
+ that uniquely identify the object whose details are being queried.
+ The following subsections describe the <spppGetRequest> and
+ <spppGetResponse> elements. Refer to Section 10 for an example of
+ the SPPP over SOAP Get operation on each type of SPPF object.
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 25]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.6.1. Get Request
+
+ The request structure for an SPPP over SOAP Get operation is
+ contained within the generic <spppGetRequest> element:
+
+ <element name="spppGetRequest">
+ <complexType>
+ <sequence>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="objKey"
+ type="sppfb:ObjKeyType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ The data elements within the <spppGetRequest> element are described
+ as follows:
+
+ o minorVer: Zero or one minor version identifier, as defined in
+ Section 7.4.
+
+ o objKey: One or more elements of abstract type ObjKeyType (as
+ defined in [RFC7877]). Each element contains attributes that
+ uniquely identify the object that the client is requesting the
+ server to query. Refer to Section 7.1 of this document for a
+ description of all concrete object key types, for various SPPF
+ objects, which are eligible to be passed into this element.
+
+7.2.6.2. Get Response
+
+ The SPPP over SOAP Get response is wrapped within the generic
+ <spppGetResponse> element, as described in Section 7.2.8.
+
+7.2.7. Get SED Group Offers Operation Structure
+
+ In addition to the ability to query the details of one or more SED
+ Group Offers using a SED Group Offer key in the spppGetRequest, this
+ operation also provides an additional, more flexible, structure to
+ query for SED Group Offer objects. This additional structure is
+ contained within the <getSedGrpOffersRequest> element while the
+ response is wrapped within the generic <spppGetResponse> element.
+ The following subsections describe the <getSedGrpOffersRequest> and
+ <spppGetResponse> elements.
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 26]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.7.1. Get SED Group Offers Request
+
+ Using the details passed into this structure, the server will attempt
+ to find SED Group Offer objects that satisfy all the criteria passed
+ into the request. If no criteria are passed in, then the SPPF server
+ will return the list of SED Group Offer objects that belong to the
+ Registrant. If there are no matching SED Group Offers found, then an
+ empty result set will be returned.
+
+ <element name="getSedGrpOffersRequest">
+ <complexType>
+ <sequence>
+ <element name="minorVer" type="sppfb:MinorVerType"
+ minOccurs="0"/>
+ <element name="offeredBy" type="sppfb:OrgIdType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <element name="offeredTo" type="sppfb:OrgIdType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <element name="status" type="sppfb:SedGrpOfferStatusType"
+ minOccurs="0"/>
+ <element name="sedGrpOfferKey" type="sppfs:SedGrpOfferKeyType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ The data elements within the <getSedGrpOffersRequest> element are
+ described as follows:
+
+ o minorVer: Zero or one minor version identifier, as defined in
+ Section 7.4.
+
+ o offeredBy: Zero or more organization IDs. Only offers that are
+ offered to the organization IDs in this list should be included in
+ the result set. The result set is also subject to other query
+ criteria in the request.
+
+ o offeredTo: Zero or more organization IDs. Only offers that are
+ offered by the organization IDs in this list should be included in
+ the result set. The result set is also subject to other query
+ criteria in the request.
+
+ o status: The status of the offer, offered or accepted. Only offers
+ in the specified status should be included in the result set. If
+ this element is not present, then the status of the offer should
+ not be considered in the query. The result set is also subject to
+ other query criteria in the request.
+
+
+
+
+Cartwright, et al. Standards Track [Page 27]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ o sedGrpOfferKey: Zero or more SED Group Offer keys. Only offers
+ having one of these keys should be included in the result set.
+ The result set is also subject to other query criteria in the
+ request.
+
+7.2.7.2. Get SED Group Offers Response
+
+ The spppGetResponse element is described in Section 7.2.8.
+
+7.2.8. Generic Query Response
+
+ An SPPP over SOAP query response object is contained within the
+ generic <spppGetResponse> element.
+
+ <element name="spppGetResponse">
+ <complexType>
+ <sequence>
+ <element name="overallResult"
+ type="sppfs:ResultCodeType"/>
+ <element name="resultObj"
+ type="sppfb:BasicObjType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ An <spppGetResponse> contains the elements necessary for the SPPF
+ client to precisely determine the overall result of the query and
+ details of any SPPF objects that matched the criteria in the request.
+
+ The data elements within the SPPP over SOAP query response are
+ described as follows:
+
+ o overallResult: Exactly one response code and message pair that
+ explicitly identifies the result of the request. See Section 7.3
+ for further details.
+
+ o resultObj: The set of zero or more objects that matched the query
+ criteria. If no objects matched the query criteria, then the
+ result object(s) MUST be empty and the overallResult value MUST
+ indicate success (if no matches are found for the query criteria,
+ the response is considered a success).
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 28]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+7.2.9. Get Server Details Operation Structure
+
+ In order to query certain details of the SPPF server, such as the
+ SPPF server's status and the major/minor version supported by the
+ server, the Server Details operation structure SHOULD be used. This
+ structure is contained within the <spppServerStatusRequest> element
+ whereas an SPPF server status response is wrapped within the
+ <spppServerStatusResponse> element. The following subsections
+ describe the <spppServerStatusRequest> and <spppServerStatusResponse>
+ elements.
+
+7.2.9.1. Get Server Details Request
+
+ An SPPP over SOAP server details request structure is represented in
+ the <spppServerStatusRequest> element as follows:
+
+ <element name="spppServerStatusRequest">
+ <complexType>
+ <sequence>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ The data elements within the <spppServerStatusRequest> element are
+ described as follows:
+
+ o minorVer: Zero or one minor version identifier, as defined in
+ Section 7.4.
+
+7.2.9.2. Get Server Details Response
+
+ An SPPP over SOAP server details response structure is contained
+ within the generic <spppServerStatusResponse> element.
+
+ <element name="spppServerStatusResponse">
+ <complexType>
+ <sequence>
+ <element name="overallResult" type="sppfs:ResultCodeType"/>
+ <element name="svcMenu" type="sppfb:SvcMenuType"/>
+ </sequence>
+ </complexType>
+ </element>
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 29]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The data elements within the <spppServerStatusResponse> element are
+ described as follows:
+
+ o overallResult: Exactly one response code and message pair that
+ explicitly identifies the result of the request. See Section 7.3
+ for further details.
+
+ o svcMenu: Exactly one element of type SvcMenuType that, in turn,
+ contains the elements to return the server status, the major and
+ minor versions of SPPP over SOAP supported by the SPPF server
+ (refer to Section 12 of [RFC7877] for the definition of
+ SvcMenuType).
+
+7.3. Response Codes and Messages
+
+ This section contains the listing of response codes and their
+ corresponding human-readable text. These response codes are in
+ conformance with the response types defined in Section 5.3 of
+ [RFC7877].
+
+ The response code numbering scheme generally adheres to the theory
+ formalized in Section 4.2.1 of [RFC5321]:
+
+ o The first digit of the response code can only be 1 or 2: 1 = a
+ positive result, and 2 = a negative result.
+
+ o The second digit of the response code indicates the category: 0 =
+ Protocol Syntax, 1 = Implementation Specific Business Rule, 2 =
+ Security, and 3 = Server System.
+
+ o The third and fourth digits of the response code indicate the
+ individual message event within the category defined by the first
+ two digits.
+
+ The response codes are also categorized as to whether they are
+ overall response codes that may only be returned in the overallResult
+ data element in SPPF responses or object-level response codes that
+ may only be returned in the detailResult element of the SPPF
+ responses.
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 30]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ +--------+--------------------------+-------------------------------+
+ | Result | Result Message | Overall or Object Level |
+ | Code | | |
+ +--------+--------------------------+-------------------------------+
+ | 1000 | Request succeeded | Overall Response Code |
+ | 2000 | Request syntax invalid | Overall Response Code |
+ | 2001 | Request too large | Overall Response Code |
+ | | MaxSupported:[Maximum | |
+ | | requests supported] | |
+ | 2002 | Version not supported | Overall Response Code |
+ | 2100 | Command invalid | Overall Response Code |
+ | 2300 | System temporarily | Overall Response Code |
+ | | unavailable | |
+ | 2301 | Unexpected internal | Overall Response Code |
+ | | system or server error | |
+ | 2101 | Attribute value invalid | Object-Level Response Code |
+ | | AttrName:[AttributeName] | |
+ | | AttrVal:[AttributeValue] | |
+ | 2102 | Object does not exist | Object-Level Response Code |
+ | | AttrName:[AttributeName] | |
+ | | AttrVal:[AttributeValue] | |
+ | 2103 | Object status or | Object-Level Response Code |
+ | | ownership does not allow | |
+ | | for operation | |
+ | | AttrName:[AttributeName] | |
+ | | AttrVal:[AttributeValue] | |
+ +--------+--------------------------+-------------------------------+
+
+ Table 1: Response Code Numbering Scheme and Messages
+
+ The response message for response code 2001 is "parameterized" with
+ the following parameter: "[Maximum requests supported]". When the
+ request is too large, this parameter MUST be used to indicate the
+ maximum number of requests supported by the server in a single
+ protocol operation.
+
+ Response code 2000 SHOULD be used when the XML Schema validation of
+ requests fails.
+
+ Each of the object-level response messages are "parameterized" with
+ the following parameters: "AttributeName" and "AttributeValue".
+
+ For example, if an SPPF client sends a request to delete a
+ Destination Group with a name "TestDG", and it does not already
+ exist, then the error message returned should be: "Attribute value
+ invalid. AttrName:dgName AttrVal:TestDG".
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 31]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The use of these parameters MUST adhere to the rules defined in
+ Section 5.3 of [RFC7877].
+
+7.4. Minor Version Identifier
+
+ The minor version identifier element is defined as follows:
+
+ o minorVer: Zero or one minor version identifier, indicating the
+ minor version of the SPPP over SOAP API that the client is
+ attempting to use. This is used in conjunction with the major
+ version identifier in the XML Namespace to identify the version of
+ SPPP over SOAP that the client is using. If the element is not
+ present, the server assumes that the client is using the latest
+ minor version of SPPP over SOAP supported by the SPPF server for
+ the given major version. The versions of SPPP over SOAP supported
+ by a given SPPF server can be retrieved by the client using this
+ same spppServerStatusRequest without passing in the minorVer
+ element.
+
+8. Protocol Operations
+
+ Refer to Section 7 of [RFC7877] for a description of all SPPF
+ operations and any necessary semantics that MUST be adhered to in
+ order to conform with SPPF.
+
+9. SPPP over SOAP WSDL Definition
+
+ The SPPP over SOAP WSDL and data types are defined below. The WSDL
+ design approach is commonly referred to as "Generic WSDL". It is
+ generic in the sense that there is not a specific WSDL operation
+ defined for each object type that is supported by the SPPF protocol.
+ There is a single WSDL structure for each type of SPPF operation.
+ Each such WSDL structure contains exactly one input structure and one
+ output structure that wraps any data elements that are part of the
+ incoming request and the outgoing response, respectively. The
+ spppSOAPBinding in the WSDL defines the binding style as "document"
+ and the encoding as "literal". It is this combination of "wrapped"
+ input and output data structures, "document" binding style, and
+ "literal" encoding that characterize the Document Literal Wrapped
+ style of WSDL specifications.
+
+ Notes: The following WSDL has been formatted (e.g., tabs, spaces) to
+ meet IETF requirements. Deployments MUST replace
+ "REPLACE_WITH_ACTUAL_URL" in the WSDL below with the URI of the SPPF
+ server instance.
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 32]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:sppfb="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:sppfs="urn:ietf:params:xml:ns:sppf:soap:1"
+ targetNamespace="urn:ietf:params:xml:ns:sppf:soap:1">
+ <wsdl:types>
+ <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:sppfs="urn:ietf:params:xml:ns:sppf:soap:1"
+ targetNamespace="urn:ietf:params:xml:ns:sppf:soap:1">
+ <annotation>
+ <documentation>
+ ---- Import base schema ----
+ </documentation>
+ </annotation>
+ <import namespace="urn:ietf:params:xml:ns:sppf:base:1"
+ schemaLocation="sppfbase.xsd"/>
+ <annotation>
+ <documentation>
+ ---- Key type(s) extended
+ from base schema. ----
+ </documentation>
+ </annotation>
+ <complexType name="ObjKeyType">
+ <complexContent>
+ <extension base="sppfb:ObjKeyType">
+ <sequence>
+ <element name="rant" type="sppfb:OrgIdType"/>
+ <element name="name" type="sppfb:ObjNameType"/>
+ <element name="type" type="sppfs:ObjKeyTypeEnum"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <simpleType name="ObjKeyTypeEnum">
+ <restriction base="token">
+ <enumeration value="SedGrp"/>
+ <enumeration value="DestGrp"/>
+ <enumeration value="SedRec"/>
+ <enumeration value="EgrRte"/>
+ </restriction>
+ </simpleType>
+
+ <complexType name="SedGrpOfferKeyType">
+ <complexContent>
+ <extension base="sppfb:SedGrpOfferKeyType">
+
+
+
+Cartwright, et al. Standards Track [Page 33]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <sequence>
+ <element name="sedGrpKey"
+ type="sppfs:ObjKeyType"/>
+ <element name="offeredTo"
+ type="sppfb:OrgIdType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <complexType name="PubIdKeyType">
+ <complexContent>
+ <extension base="sppfb:PubIdKeyType">
+ <sequence>
+ <element name="rant" type="sppfb:OrgIdType"/>
+ <choice>
+ <element name="number"
+ type="sppfb:NumberType"/>
+ <element name="range"
+ type="sppfb:NumberRangeType"/>
+ </choice>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <annotation>
+ <documentation>
+ ---- Generic Request and
+ Response Definitions ----
+ </documentation>
+ </annotation>
+ <element name="spppAddRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="obj" type="sppfb:BasicObjType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppDelRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+
+
+
+Cartwright, et al. Standards Track [Page 34]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="objKey"
+ type="sppfb:ObjKeyType" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppAcceptRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="sedGrpOfferKey"
+ type="sppfs:SedGrpOfferKeyType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppRejectRequest">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="sedGrpOfferKey"
+ type="sppfs:SedGrpOfferKeyType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppGetRequest">
+ <complexType>
+ <sequence>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="objKey"
+ type="sppfb:ObjKeyType"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppBatchRequest">
+ <complexType>
+ <sequence>
+
+
+
+Cartwright, et al. Standards Track [Page 35]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <choice minOccurs="1" maxOccurs="unbounded">
+ <element name="addObj" type="sppfb:BasicObjType"/>
+ <element name="delObj" type="sppfb:ObjKeyType"/>
+ <element name="acceptSedGrpOffer"
+ type="sppfs:SedGrpOfferKeyType"/>
+ <element name="rejectSedGrpOffer"
+ type="sppfs:SedGrpOfferKeyType"/>
+ </choice>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppServerStatusRequest">
+ <complexType>
+ <sequence>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="getSedGrpOffersRequest">
+ <complexType>
+ <sequence>
+ <element name="minorVer"
+ type="sppfb:MinorVerType" minOccurs="0"/>
+ <element name="offeredBy"
+ type="sppfb:OrgIdType" minOccurs="0"
+ maxOccurs="unbounded"/>
+ <element name="offeredTo" type="sppfb:OrgIdType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <element name="status"
+ type="sppfb:SedGrpOfferStatusType" minOccurs="0"/>
+ <element name="sedGrpOfferKey"
+ type="sppfs:SedGrpOfferKeyType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppAddResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="serverTransId"
+ type="sppfb:TransIdType"/>
+
+
+
+Cartwright, et al. Standards Track [Page 36]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <element name="overallResult"
+ type="sppfs:ResultCodeType"/>
+ <element name="detailResult"
+ type="sppfs:ObjResultCodeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppDelResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="serverTransId"
+ type="sppfb:TransIdType"/>
+ <element name="overallResult"
+ type="sppfs:ResultCodeType"/>
+ <element name="detailResult"
+ type="sppfs:ObjKeyResultCodeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppAcceptResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="serverTransId"
+ type="sppfb:TransIdType"/>
+ <element name="overallResult"
+ type="sppfs:ResultCodeType"/>
+ <element name="detailResult"
+ type="sppfs:SedGrpOfferKeyResultCodeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppRejectResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="serverTransId"
+ type="sppfb:TransIdType"/>
+ <element name="overallResult"
+ type="sppfs:ResultCodeType"/>
+ <element name="detailResult"
+
+
+
+Cartwright, et al. Standards Track [Page 37]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ type="sppfs:SedGrpOfferKeyResultCodeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppBatchResponse">
+ <complexType>
+ <sequence>
+ <element name="clientTransId"
+ type="sppfb:TransIdType" minOccurs="0"/>
+ <element name="serverTransId"
+ type="sppfb:TransIdType"/>
+ <element name="overallResult"
+ type="sppfs:ResultCodeType"/>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="addResult"
+ type="sppfs:ObjResultCodeType"/>
+ <element name="delResult"
+ type="sppfs:ObjKeyResultCodeType"/>
+ <element name="acceptResult"
+ type="sppfs:SedGrpOfferKeyResultCodeType"/>
+ <element name="rejectResult"
+ type="sppfs:SedGrpOfferKeyResultCodeType"/>
+ </choice>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppGetResponse">
+ <complexType>
+ <sequence>
+ <element name="overallResult"
+ type="sppfs:ResultCodeType"/>
+ <element name="resultObj"
+ type="sppfb:BasicObjType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="spppServerStatusResponse">
+ <complexType>
+ <sequence>
+ <element name="overallResult"
+ type="sppfs:ResultCodeType"/>
+ <element name="svcMenu"
+ type="sppfb:SvcMenuType"/>
+ </sequence>
+ </complexType>
+ </element>
+
+
+
+Cartwright, et al. Standards Track [Page 38]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <annotation>
+ <documentation>
+ ---- Operation Result Type
+ Definitions ----
+ </documentation>
+ </annotation>
+ <complexType name="ResultCodeType">
+ <sequence>
+ <element name="code" type="sppfs:ResultCodeValType"/>
+ <element name="msg" type="sppfs:MsgType"/>
+ </sequence>
+ </complexType>
+
+ <simpleType name="ResultCodeValType">
+ <restriction base="unsignedShort">
+ <enumeration value="1000"/>
+ <enumeration value="2000"/>
+ <enumeration value="2001"/>
+ <enumeration value="2002"/>
+ <enumeration value="2100"/>
+ <enumeration value="2101"/>
+ <enumeration value="2102"/>
+ <enumeration value="2103"/>
+ <enumeration value="2300"/>
+ <enumeration value="2301"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="MsgType">
+ <restriction base="token">
+ <minLength value="3"/>
+ <maxLength value="255"/>
+ </restriction>
+ </simpleType>
+
+ <complexType name="ObjResultCodeType">
+ <complexContent>
+ <extension base="sppfs:ResultCodeType">
+ <sequence>
+ <element name="obj" type="sppfb:BasicObjType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="ObjKeyResultCodeType">
+ <complexContent>
+ <extension base="sppfs:ResultCodeType">
+ <sequence>
+
+
+
+Cartwright, et al. Standards Track [Page 39]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <element name="objKey" type="sppfb:ObjKeyType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="SedGrpOfferKeyResultCodeType">
+ <complexContent>
+ <extension base="sppfs:ResultCodeType">
+ <sequence>
+ <element name="sedGrpOfferKey"
+ type="sppfs:SedGrpOfferKeyType"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="spppAddRequestMsg">
+ <wsdl:part name="rqst" element="sppfs:spppAddRequest"/>
+ </wsdl:message>
+ <wsdl:message name="spppDelRequestMsg">
+ <wsdl:part name="rqst" element="sppfs:spppDelRequest"/>
+ </wsdl:message>
+ <wsdl:message name="spppAcceptRequestMsg">
+ <wsdl:part name="rqst" element="sppfs:spppAcceptRequest"/>
+ </wsdl:message>
+ <wsdl:message name="spppRejectRequestMsg">
+ <wsdl:part name="rqst" element="sppfs:spppRejectRequest"/>
+ </wsdl:message>
+ <wsdl:message name="spppBatchRequestMsg">
+ <wsdl:part name="rqst" element="sppfs:spppBatchRequest"/>
+ </wsdl:message>
+ <wsdl:message name="spppGetRequestMsg">
+ <wsdl:part name="rqst" element="sppfs:spppGetRequest"/>
+ </wsdl:message>
+ <wsdl:message name="spppGetSedGrpOffersRequestMsg">
+ <wsdl:part name="rqst" element="sppfs:getSedGrpOffersRequest"/>
+ </wsdl:message>
+ <wsdl:message name="spppAddResponseMsg">
+ <wsdl:part name="rspns" element="sppfs:spppAddResponse"/>
+ </wsdl:message>
+ <wsdl:message name="spppDelResponseMsg">
+ <wsdl:part name="rspns" element="sppfs:spppDelResponse"/>
+ </wsdl:message>
+ <wsdl:message name="spppAcceptResponseMsg">
+ <wsdl:part name="rspns" element="sppfs:spppAcceptResponse"/>
+ </wsdl:message>
+ <wsdl:message name="spppRejectResponseMsg">
+
+
+
+Cartwright, et al. Standards Track [Page 40]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <wsdl:part name="rspns" element="sppfs:spppRejectResponse"/>
+ </wsdl:message>
+ <wsdl:message name="spppBatchResponseMsg">
+ <wsdl:part name="rspns" element="sppfs:spppBatchResponse"/>
+ </wsdl:message>
+ <wsdl:message name="spppGetResponseMsg">
+ <wsdl:part name="rspns" element="sppfs:spppGetResponse"/>
+ </wsdl:message>
+ <wsdl:message name="spppServerStatusRequestMsg">
+ <wsdl:part name="rqst" element="sppfs:spppServerStatusRequest"/>
+ </wsdl:message>
+ <wsdl:message name="spppServerStatusResponseMsg">
+ <wsdl:part name="rspns" element="sppfs:spppServerStatusResponse"/>
+ </wsdl:message>
+ <wsdl:portType name="spppPortType">
+ <wsdl:operation name="submitAddRqst">
+ <wsdl:input message="sppfs:spppAddRequestMsg"/>
+ <wsdl:output message="sppfs:spppAddResponseMsg"/>
+ </wsdl:operation>
+ <wsdl:operation name="submitDelRqst">
+ <wsdl:input message="sppfs:spppDelRequestMsg"/>
+ <wsdl:output message="sppfs:spppDelResponseMsg"/>
+ </wsdl:operation>
+ <wsdl:operation name="submitAcceptRqst">
+ <wsdl:input message="sppfs:spppAcceptRequestMsg"/>
+ <wsdl:output message="sppfs:spppAcceptResponseMsg"/>
+ </wsdl:operation>
+ <wsdl:operation name="submitRejectRqst">
+ <wsdl:input message="sppfs:spppRejectRequestMsg"/>
+ <wsdl:output message="sppfs:spppRejectResponseMsg"/>
+ </wsdl:operation>
+ <wsdl:operation name="submitBatchRqst">
+ <wsdl:input message="sppfs:spppBatchRequestMsg"/>
+ <wsdl:output message="sppfs:spppBatchResponseMsg"/>
+ </wsdl:operation>
+ <wsdl:operation name="submitGetRqst">
+ <wsdl:input message="sppfs:spppGetRequestMsg"/>
+ <wsdl:output message="sppfs:spppGetResponseMsg"/>
+ </wsdl:operation>
+ <wsdl:operation name="submitGetSedGrpOffersRqst">
+ <wsdl:input message="sppfs:spppGetSedGrpOffersRequestMsg"/>
+ <wsdl:output message="sppfs:spppGetResponseMsg"/>
+ </wsdl:operation>
+ <wsdl:operation name="submitServerStatusRqst">
+ <wsdl:input message="sppfs:spppServerStatusRequestMsg"/>
+ <wsdl:output message="sppfs:spppServerStatusResponseMsg"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+
+
+Cartwright, et al. Standards Track [Page 41]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <wsdl:binding name="spppSoapBinding" type="sppfs:spppPortType">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="submitAddRqst">
+ <soap:operation soapAction="submitAddRqst" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="submitDelRqst">
+ <soap:operation soapAction="submitDelRqst" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="submitAcceptRqst">
+ <soap:operation soapAction="submitAcceptRqst" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="submitRejectRqst">
+ <soap:operation soapAction="submitRejectRqst" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="submitBatchRqst">
+ <soap:operation soapAction="submitBatchRqst" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+
+
+Cartwright, et al. Standards Track [Page 42]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <wsdl:operation name="submitGetRqst">
+ <soap:operation soapAction="submitGetRqst" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="submitGetSedGrpOffersRqst">
+ <soap:operation soapAction="submitGetSedGrpOffersRqst"
+ style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="submitServerStatusRqst">
+ <soap:operation soapAction="submitServerStatusRqst"
+ style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="spppService">
+ <wsdl:port name="spppPort" binding="sppfs:spppSoapBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </wsdl:port>
+ </wsdl:service>
+ </wsdl:definitions>
+
+ Figure 2: WSDL
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 43]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10. SPPP over SOAP Examples
+
+ This section shows an XML message exchange between two SIP Service
+ Providers (SSPs) and a Registry. The messages in this section are
+ valid XML instances that conform to the SPPP over SOAP schema version
+ within this document. This section also relies on the XML data
+ structures defined in the SPPF specification [RFC7877], which should
+ also be referenced to understand XML object types embedded in these
+ example messages.
+
+ In this sample use-case scenario, SSP1 and SSP2 provision resource
+ data in the Registry and use SPPF constructs to selectively share the
+ SED Groups. In the figure below, SSP2 has two ingress Signaling Path
+ Border Element (SBE) instances that are associated with the Public
+ Identities with which SSP2 has the retail relationship. Also, the
+ two SBE instances for SSP1 are used to show how to use SPPF to
+ associate route preferences for the destination Ingress Routes and
+ exercise greater control on outbound traffic to the peer's ingress
+ SBEs.
+
+ ---------------+ +------------------
+ | |
+ +------+ +------+
+ | sbe1 | | sbe2 |
+ +------+ +------+
+ SSP1 | | SSP2
+ +------+ +------+
+ | sbe3 | | sbe4 |
+ +------+ +------+
+ iana-en:111 | | iana-en:222
+ ---------------+ +------------------
+ | |
+ | |
+ | SPPF +------------------+ SPPF |
+ +------->| Registry |<--------+
+ +------------------+
+
+ Example Use-Case Infrastructure
+
+10.1. Add Destination Group
+
+ SSP2 adds a Destination Group to the Registry for later use. The
+ SSP2 SPPF client sets a unique transaction identifier "txn_1479" for
+ tracking purposes. The name of the Destination Group is set to
+ DEST_GRP_SSP2_1.
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 44]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <!--Optional:-->
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:DestGrpType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+ The Registry processes the request and returns a favorable response
+ confirming successful creation of the named Destination Group. In
+ addition to returning a unique server transaction identifier, the
+ Registry returns the matching client transaction identifier from the
+ request message back to the SPPF client.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 45]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.2. Add SED Records
+
+ SSP2 adds SED Records in the form of Ingress Routes to the Registry.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <!--Optional:-->
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:NAPTRType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:sedName>SED_SSP2_SBE2</urn1:sedName>
+ <urn1:isInSvc>true</urn1:isInSvc>
+ <urn1:order>10</urn1:order>
+ <urn1:flags>u</urn1:flags>
+ <urn1:svcs>E2U+sip</urn1:svcs>
+ <urn1:regx>
+ <urn1:ere>^(.*)$</urn1:ere>
+ <urn1:repl>sip:\1@sbe2.ssp2.example.com</urn1:repl>
+ </urn1:regx>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 46]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry returns a success response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+10.3. Add SED Records -- URIType
+
+ SSP2 adds another SED Record to the Registry and makes use of
+ URIType.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:URIType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:sedName>SED_SSP2_SBE4</urn1:sedName>
+ <urn1:isInSvc>true</urn1:isInSvc>
+ <urn1:ere>^(.*)$</urn1:ere>
+ <urn1:uri>sip:\1;npdi@sbe4.ssp2.example.com</urn1:uri>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 47]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry returns a success response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 48]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.4. Add SED Group
+
+ SSP2 creates the grouping of SED Records (e.g., Ingress Routes) and
+ chooses a higher precedence for SED_SSP2_SBE2 by setting a lower
+ number for the "priority" attribute, a protocol agnostic precedence
+ indicator.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:SedGrpType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:sedGrpName>SED_GRP_SSP2_1</urn1:sedGrpName>
+ <urn1:sedRecRef>
+ <urn1:sedKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_SSP2_SBE2</name>
+ <type>SedRec</type>
+ </urn1:sedKey>
+ <urn1:priority>100</urn1:priority>
+ </urn1:sedRecRef>
+ <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
+ <urn1:isInSvc>true</urn1:isInSvc>
+ <urn1:priority>10</urn1:priority>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 49]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ To confirm successful processing of this request, the Registry
+ returns a well-known result code "1000" to the SSP2 client.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+10.5. Add Public Identifier -- Successful COR Claim
+
+ SSP2 activates a TN Public Identifier by associating it with a valid
+ Destination Group. Further, SSP2 puts forth a claim that it is the
+ carrier-of-record (COR) for the TN.
+
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:TNType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
+ <urn1:tn>+12025556666</urn1:tn>
+ <urn1:corInfo>
+ <urn1:corClaim>true</urn1:corClaim>
+ </urn1:corInfo>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+Cartwright, et al. Standards Track [Page 50]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ Assuming that the Registry has access to TN authority data and it
+ performs the required checks to verify that SSP2 is in fact the SP of
+ record for the given TN, the request is processed successfully. In
+ the response message, the Registry sets the value of <cor> to "true"
+ in order to confirm the SSP2 claim as the carrier-of-record, and the
+ <corDate> reflects the time when the carrier-of-record claim is
+ processed.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ <detailResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ <obj xsi:type="ns2:TNType">
+ <ns2:rant>iana-en:222</ns2:rant>
+ <ns2:rar>iana-en:223</ns2:rar>
+ <ns2:cDate>2010-05-30T09:30:10Z</ns2:cDate>
+ <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
+ <ns2:tn>+12025556666</ns2:tn>
+ <ns2:corInfo>
+ <ns2:corClaim>true</ns2:corClaim>
+ <ns2:cor>true</ns2:cor>
+ <ns2:corDate>2010-05-30T09:30:11Z</ns2:corDate>
+ </ns2:corInfo>
+ </obj>
+ </detailResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 51]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.6. Add LRN
+
+ If another entity that SSP2 shares SED (e.g., routes) with has access
+ to Number Portability data, it may choose to perform route lookups by
+ RN. Therefore, SSP2 associates an RN to a Destination Group in order
+ to facilitate Ingress Route discovery.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:RNType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
+ <urn1:rn>2025550000</urn1:rn>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 52]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry completes the request successfully and returns a
+ favorable response to the SPPF client.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+10.7. Add TN Range
+
+ Next, SSP2 activates a block of ten thousand TNs and associates it to
+ a Destination Group.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:TNRType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
+ <urn1:range>
+ <urn1:startTn>+12026660000</urn1:startTn>
+ <urn1:endTn>+12026669999</urn1:endTn>
+ </urn1:range>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+Cartwright, et al. Standards Track [Page 53]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+10.8. Add TN Prefix
+
+ Next, SSP2 activates a block of ten thousand TNs by using the TNPType
+ structure and identifying a TN prefix.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:TNPType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
+ <urn1:tnPrefix>+1202777</urn1:tnPrefix>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 54]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 55]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.9. Enable Peering -- SED Group Offer
+
+ In order for SSP1 to complete session establishment for a destination
+ TN where the target subscriber has a retail relationship with SSP2,
+ it first requires an asynchronous bidirectional handshake to show
+ mutual consent. To start the process, SSP2 initiates the peering
+ handshake by offering SSP1 access to its SED Group.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:SedGrpOfferType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:sedGrpOfferKey xsi:type="urn:SedGrpOfferKeyType">
+ <sedGrpKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </sedGrpKey>
+ <offeredTo>iana-en:111</offeredTo>
+ </urn1:sedGrpOfferKey>
+ <urn1:status>offered</urn1:status>
+ <urn1:offerDateTime>
+ 2006-05-04T18:13:51.0Z
+ </urn1:offerDateTime>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 56]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry completes the request successfully and confirms that the
+ SSP1 will now have the opportunity to weigh in on the offer and
+ either accept or reject it. The Registry may employ out-of-band
+ notification mechanisms for quicker updates to SSP1 so they can act
+ faster, though this topic is beyond the scope of this document.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 57]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.10. Enable Peering -- SED Group Offer Accept
+
+ SSP1 responds to the offer from SSP2 and agrees to have visibility to
+ SSP2 SED (e.g., Ingress Routes).
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAcceptRequest>
+ <!--Optional:-->
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <sedGrpOfferKey>
+ <sedGrpKey>
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </sedGrpKey>
+ <offeredTo>iana-en:111</offeredTo>
+ </sedGrpOfferKey>
+ </urn:spppAcceptRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 58]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry confirms that the request has been processed
+ successfully. From this point forward, if SSP1 looks up a Public
+ Identifier through the query resolution server, where the Public
+ Identifier is part of the Destination Group by way of
+ "SED_GRP_SSP2_1" SED association, SSP2 ingress SBE information will
+ be shared with SSP1.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAcceptResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12350</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAcceptResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 59]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.11. Add Egress Route
+
+ SSP1 wants to prioritize all outbound traffic to the Ingress Route
+ associated with the "SED_GRP_SSP2_1" SED Group record, through
+ "sbe1.ssp1.example.com".
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppAddRequest>
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <obj xsi:type="urn1:EgrRteType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:egrRteName>EGR_RTE_01</urn1:egrRteName>
+ <urn1:pref>50</urn1:pref>
+ <urn1:regxRewriteRule>
+ <urn1:ere>^(.*@)(.*)$</urn1:ere>
+ <urn1:repl>\1\2?route=sbe1.ssp1.example.com</urn1:repl>
+ </urn1:regxRewriteRule>
+ <urn1:ingrSedGrp xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </urn1:ingrSedGrp>
+ </obj>
+ </urn:spppAddRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 60]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ Since peering has already been established, the request to add the
+ Egress Route has been successfully completed.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppAddResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12345</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppAddResponse>
+ </S:Body>
+ </S:Envelope>
+
+10.12. Remove Peering -- SED Group Offer Reject
+
+ Earlier, SSP1 had accepted having visibility to SSP2 SED. SSP1 now
+ decides to no longer maintain this visibility; hence, it rejects the
+ SED Group Offer.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppRejectRequest>
+ <!--Optional:-->
+ <clientTransId>txn_1479</clientTransId>
+ <!--1 or more repetitions:-->
+ <sedGrpOfferKey>
+ <sedGrpKey>
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </sedGrpKey>
+ <offeredTo>iana-en:111</offeredTo>
+ </sedGrpOfferKey>
+ </urn:spppRejectRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+Cartwright, et al. Standards Track [Page 61]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry confirms that the request has been processed
+ successfully. From this point forward, if SSP1 looks up a Public
+ Identifier through the query resolution server, where the Public
+ Identifier is part of the Destination Group by way of
+ "SED_GRP_SSP2_1" SED association, SSP2 ingress SBE information will
+ not be shared with SSP1; hence, an SSP2 ingress SBE will not be
+ returned in the query response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppRejectResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <clientTransId>txn_1479</clientTransId>
+ <serverTransId>tx_12350</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppRejectResponse>
+ </S:Body>
+ </S:Envelope>
+
+10.13. Get Destination Group
+
+ SSP2 uses the spppGetRequest operation to tally the last provisioned
+ record for Destination Group DEST_GRP_SSP2_1.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppGetRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>DEST_GRP_SSP2_1</name>
+ <type>DestGrp</type>
+ </objKey>
+ </urn:spppGetRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+Cartwright, et al. Standards Track [Page 62]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <S:Body>
+ <ns3:spppGetResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <overallResult>
+ <code>1000</code>
+ <msg>success</msg>
+ </overallResult>
+ <resultObj xsi:type="ns2:DestGrpType">
+ <ns2:rant>iana-en:222</ns2:rant>
+ <ns2:rar>iana-en:223</ns2:rar>
+ <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
+ <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
+ </resultObj>
+ </ns3:spppGetResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 63]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.14. Get Public Identifier
+
+ SSP2 obtains the last provisioned record associated with a given TN.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppGetRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:PubIdKeyType">
+ <rant>iana-en:222</rant>
+ <number>
+ <urn1:value>+12025556666</urn1:value>
+ <urn1:type>TN</urn1:type>
+ </number>
+ </objKey>
+ </urn:spppGetRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 64]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <S:Body>
+ <ns3:spppGetResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <overallResult>
+ <code>1000</code>
+ <msg>success</msg>
+ </overallResult>
+ <resultObj xsi:type="ns2:TNType">
+ <ns2:rant>iana-en:222</ns2:rant>
+ <ns2:rar>iana-en:223</ns2:rar>
+ <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
+ <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
+ <ns2:tn>+12025556666</ns2:tn>
+ <ns2:corInfo>
+ <ns2:corClaim>true</ns2:corClaim>
+ <ns2:cor>true</ns2:cor>
+ <ns2:corDate>2010-05-30T09:30:10Z</ns2:corDate>
+ </ns2:corInfo>
+ </resultObj>
+ </ns3:spppGetResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 65]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.15. Get SED Group Request
+
+ SSP2 obtains the last provisioned record for the SED Group
+ SED_GRP_SSP2_1.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppGetRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </objKey>
+ </urn:spppGetRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 66]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <S:Body>
+ <ns3:spppGetResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <overallResult>
+ <code>1000</code>
+ <msg>success</msg>
+ </overallResult>
+ <resultObj xsi:type="ns2:SedGrpType">
+ <ns2:rant>iana-en:222</ns2:rant>
+ <ns2:rar>iana-en:223</ns2:rar>
+ <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
+ <ns2:sedGrpName>SED_GRP_SSP2_1</ns2:sedGrpName>
+ <ns2:sedRecRef>
+ <ns2:sedKey xsi:type="ns3:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_SSP2_SBE2</name>
+ <type>SedRec</type>
+ </ns2:sedKey>
+ <ns2:priority>100</ns2:priority>
+ </ns2:sedRecRef>
+ <ns2:sedRecRef>
+ <ns2:sedKey xsi:type="ns3:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_SSP2_SBE4</name>
+ <type>SedRec</type>
+ </ns2:sedKey>
+ <ns2:priority>101</ns2:priority>
+ </ns2:sedRecRef>
+ <ns2:dgName>DEST_GRP_SSP2_1</ns2:dgName>
+ <ns2:isInSvc>true</ns2:isInSvc>
+ <ns2:priority>10</ns2:priority>
+ </resultObj>
+ </ns3:spppGetResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 67]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.16. Get SED Group Offers Request
+
+ SSP2 fetches the last provisioned SED Group Offer to the <peeringOrg>
+ SSP1.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:getSedGrpOffersRequest>
+ <offeredTo>iana-en:111</offeredTo>
+ </urn:getSedGrpOffersRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 68]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry processes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <S:Body>
+ <ns3:spppGetResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <overallResult>
+ <code>1000</code>
+ <msg>success</msg>
+ </overallResult>
+ <resultObj xsi:type="ns2:SedGrpOfferType">
+ <ns2:rant>iana-en:222</ns2:rant>
+ <ns2:rar>iana-en:223</ns2:rar>
+ <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
+ <ns2:sedGrpOfferKey
+ xsi:type="ns3:SedGrpOfferKeyType">
+ <sedGrpKey>
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </sedGrpKey>
+ <offeredTo>iana-en:111</offeredTo>
+ </ns2:sedGrpOfferKey>
+ <ns2:status>offered</ns2:status>
+ <ns2:offerDateTime>
+ 2006-05-04T18:13:51.0Z
+ </ns2:offerDateTime>
+ </resultObj>
+ </ns3:spppGetResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 69]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.17. Get Egress Route
+
+ SSP1 wants to verify the last provisioned record for the Egress Route
+ called EGR_RTE_01.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppGetRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:111</rant>
+ <name>EGR_RTE_01</name>
+ <type>EgrRte</type>
+ </objKey>
+ </urn:spppGetRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 70]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <S:Body>
+ <ns3:spppGetResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <overallResult>
+ <code>1000</code>
+ <msg>success</msg>
+ </overallResult>
+ <resultObj xsi:type="ns2:EgrRteType">
+ <ns2:rant>iana-en:222</ns2:rant>
+ <ns2:rar>iana-en:223</ns2:rar>
+ <ns2:cDate>2012-10-22T09:30:10Z</ns2:cDate>
+ <ns2:egrRteName>EGR_RTE_01</ns2:egrRteName>
+ <ns2:pref>50</ns2:pref>
+ <ns2:regxRewriteRule>
+ <ns2:ere>^(.*)$</ns2:ere>
+ <ns2:repl>sip:\1@sbe1.ssp1.example.com</ns2:repl>
+ </ns2:regxRewriteRule>
+ <ns2:ingrSedGrp xsi:type="ns3:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedRec</type>
+ </ns2:ingrSedGrp>
+ </resultObj>
+ </ns3:spppGetResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 71]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.18. Delete Destination Group
+
+ SSP2 initiates a request to delete the Destination Group
+ DEST_GRP_SSP2_1.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppDelRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>DEST_GRP_SSP2_1</name>
+ <type>DestGrp</type>
+ </objKey>
+ </urn:spppDelRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppDelResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <serverTransId>tx_12354</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppDelResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 72]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.19. Delete Public Identifier
+
+ SSP2 chooses to deactivate the TN and remove it from the Registry.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppDelRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:PubIdKeyType">
+ <rant>iana-en:222</rant>
+ <number>
+ <urn1:value>+12025556666</urn1:value>
+ <urn1:type>TN</urn1:type>
+ </number>
+ </objKey>
+ </urn:spppDelRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppDelResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <serverTransId>tx_12354</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppDelResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 73]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.20. Delete SED Group Request
+
+ SSP2 removes the SED Group called SED_GRP_SSP2_1.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppDelRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </objKey>
+ </urn:spppDelRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppDelResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <serverTransId>tx_12354</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppDelResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 74]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.21. Delete SED Group Offers Request
+
+ SSP2 no longer wants to share SED Group SED_GRP_SSP2_1 with SSP1.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppDelRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:SedGrpOfferKeyType">
+ <sedGrpKey>
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </sedGrpKey>
+ <offeredTo>iana-en:111</offeredTo>
+ </objKey>
+ </urn:spppDelRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+ The Registry completes the request successfully and returns a
+ favorable response. Restoring this resource sharing will require a
+ new SED Group Offer from SSP2 to SSP1 followed by a successful SED
+ Group Accept request from SSP1.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppDelResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <serverTransId>tx_12354</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppDelResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 75]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.22. Delete Egress Route
+
+ SSP1 decides to remove the Egress Route with the label EGR_RTE_01.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppDelRequest>
+ <!--1 or more repetitions:-->
+ <objKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:111</rant>
+ <name>EGR_RTE_01</name>
+ <type>EgrRte</type>
+ </objKey>
+ </urn:spppDelRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppDelResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <serverTransId>tx_12354</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppDelResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 76]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+10.23. Batch Request
+
+ Following is an example of how some of the operations mentioned in
+ previous sections MAY be performed by an SPPF client as a batch in
+ one single SPPP over SOAP request.
+
+ In the sample request below, SSP1 wants to accept a SED Group Offer
+ from SSP3, add a Destination Group, add a Naming Authority Pointer
+ (NAPTR) SED Record, add a SED Group, add a SED Group Offer, delete a
+ previously provisioned TN type Public Identifier, delete a previously
+ provisioned SED Group, and reject a SED Group Offer from SSP4.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <soapenv:Envelope
+ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:urn="urn:ietf:params:xml:ns:sppf:soap:1"
+ xmlns:urn1="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <urn:spppBatchRequest>
+ <clientTransId>txn_1467</clientTransId>
+ <minorVer>1</minorVer>
+
+ <acceptSedGrpOffer>
+ <sedGrpKey>
+ <rant>iana-en:225</rant>
+ <name>SED_SSP3_SBE1_Offered</name>
+ <type>SedGrp</type>
+ </sedGrpKey>
+ <offeredTo>iana-en:222</offeredTo>
+ </acceptSedGrpOffer>
+
+ <addObj xsi:type="urn1:DestGrpType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
+ </addObj>
+
+ <addObj xsi:type="urn1:NAPTRType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:sedName>SED_SSP2_SBE2</urn1:sedName>
+ <urn1:order>10</urn1:order>
+ <urn1:flags>u</urn1:flags>
+ <urn1:svcs>E2U+sip</urn1:svcs>
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 77]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <urn1:regx>
+ <urn1:ere>^(.*)$</urn1:ere>
+ <urn1:repl>sip:\1@sbe2.ssp2.example.com</urn1:repl>
+ </urn1:regx>
+ </addObj>
+
+ <addObj xsi:type="urn1:SedGrpType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:sedGrpName>SED_GRP_SSP2_1</urn1:sedGrpName>
+ <urn1:sedRecRef>
+ <urn1:sedKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_SSP2_SBE2</name>
+ <type>SedRec</type>
+ </urn1:sedKey>
+ <urn1:priority>100</urn1:priority>
+ </urn1:sedRecRef>
+ <urn1:dgName>DEST_GRP_SSP2_1</urn1:dgName>
+ <urn1:isInSvc>true</urn1:isInSvc>
+ <urn1:priority>10</urn1:priority>
+ </addObj>
+
+ <addObj xsi:type="urn1:SedGrpOfferType">
+ <urn1:rant>iana-en:222</urn1:rant>
+ <urn1:rar>iana-en:223</urn1:rar>
+ <urn1:sedGrpOfferKey xsi:type="urn:SedGrpOfferKeyType">
+ <sedGrpKey xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_1</name>
+ <type>SedGrp</type>
+ </sedGrpKey>
+ <offeredTo>iana-en:111</offeredTo>
+ </urn1:sedGrpOfferKey>
+ <urn1:status>offered</urn1:status>
+ <urn1:offerDateTime>
+ 2006-05-04T18:13:51.0Z
+ </urn1:offerDateTime>
+ </addObj>
+
+ <delObj xsi:type="urn:PubIdKeyType">
+ <rant>iana-en:222</rant>
+ <number>
+ <urn1:value>+12025556666</urn1:value>
+ <urn1:type>TN</urn1:type>
+ </number>
+ </delObj>
+
+
+
+
+Cartwright, et al. Standards Track [Page 78]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ <delObj xsi:type="urn:ObjKeyType">
+ <rant>iana-en:222</rant>
+ <name>SED_GRP_SSP2_Previous</name>
+ <type>SedGrp</type>
+ </delObj>
+
+ <rejectSedGrpOffer>
+ <sedGrpKey>
+ <rant>iana-en:226</rant>
+ <name>SED_SSP4_SBE1_Offered</name>
+ <type>SedGrp</type>
+ </sedGrpKey>
+ <offeredTo>iana-en:222</offeredTo>
+ </rejectSedGrpOffer>
+
+ </urn:spppBatchRequest>
+ </soapenv:Body>
+ </soapenv:Envelope>
+
+ The Registry completes the request successfully and returns a
+ favorable response.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <S:Envelope
+ xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+ <S:Body>
+ <ns3:spppBatchResponse
+ xmlns:ns2="urn:ietf:params:xml:ns:sppf:base:1"
+ xmlns:ns3="urn:ietf:params:xml:ns:sppf:soap:1">
+ <serverTransId>tx_12354</serverTransId>
+ <overallResult>
+ <code>1000</code>
+ <msg>Request Succeeded.</msg>
+ </overallResult>
+ </ns3:spppBatchResponse>
+ </S:Body>
+ </S:Envelope>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 79]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+11. Security Considerations
+
+ The base security considerations of SPPP outlined in Section 9 of
+ [RFC7877] also apply to SPPP over SOAP implementations.
+ Additionally, the following must be considered:
+
+ SPPP over SOAP is used to query and update session peering data and
+ addresses, so the ability to access this protocol should be limited
+ to users and systems that are authorized to query and update this
+ data. Because this data is sent in both directions, it may not be
+ sufficient for just the client or user to be authenticated with the
+ server. The identity of the server should also be authenticated by
+ the client, which is often accomplished using the TLS certificate
+ exchange and validation described in [RFC2818].
+
+11.1. Vulnerabilities
+
+ Section 5 describes the use of HTTP and TLS as the underlying
+ substrate protocols for SPPP over SOAP. These underlying protocols
+ may have various vulnerabilities, and these may be inherited by SPPP
+ over SOAP. SPPP over SOAP itself may have vulnerabilities because an
+ authorization model is not explicitly specified in this document.
+
+ During a TLS handshake, TLS servers can optionally request a
+ certificate from a TLS client; that option is not a requirement for
+ this protocol. This presents a denial-of-service risk in which
+ unauthenticated clients can consume server CPU resources by creating
+ TLS sessions. The risk is increased if the server supports client-
+ initiated renegotiation. This risk can be mitigated by disabling
+ client-initiated renegotiation on the server and by ensuring that
+ other means (such as firewall access control lists) are used to
+ restrict unauthenticated client access to servers.
+
+ In conjunction with the above, it is important that SPPP over SOAP
+ implementations implement an authorization model that considers the
+ source of each query or update request and determines whether it is
+ reasonable to authorize that source to perform that specific query or
+ update.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 80]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+12. IANA Considerations
+
+ This document uses URNs to describe XML Namespaces and XML Schemas.
+ According to [RFC3688], IANA has performed the following URN
+ assignment:
+
+ URN: urn:ietf:params:xml:ns:sppf:soap:1
+
+ Registrant Contact: IESG
+
+ XML: See Section 9 of [RFC7878]
+
+13. References
+
+13.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <http://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
+ DOI 10.17487/RFC3688, January 2004,
+ <http://www.rfc-editor.org/info/rfc3688>.
+
+ [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
+ (TLS) Protocol Version 1.2", RFC 5246,
+ DOI 10.17487/RFC5246, August 2008,
+ <http://www.rfc-editor.org/info/rfc5246>.
+
+ [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
+ Protocol (HTTP/1.1): Message Syntax and Routing",
+ RFC 7230, DOI 10.17487/RFC7230, June 2014,
+ <http://www.rfc-editor.org/info/rfc7230>.
+
+ [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
+ Protocol (HTTP/1.1): Semantics and Content", RFC 7231,
+ DOI 10.17487/RFC7231, June 2014,
+ <http://www.rfc-editor.org/info/rfc7231>.
+
+ [RFC7235] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
+ Protocol (HTTP/1.1): Authentication", RFC 7235,
+ DOI 10.17487/RFC7235, June 2014,
+ <http://www.rfc-editor.org/info/rfc7235>.
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 81]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+ [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre,
+ "Recommendations for Secure Use of Transport Layer
+ Security (TLS) and Datagram Transport Layer Security
+ (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
+ 2015, <http://www.rfc-editor.org/info/rfc7525>.
+
+ [RFC7877] Cartwright, K., Bhatia, V., Ali, S., and D. Schwartz,
+ "Session Peering Provisioning Framework (SPPF)", RFC 7877,
+ DOI 10.17487/RFC7877, August 2016,
+ <http://www.rfc-editor.org/info/rfc7877>.
+
+ [SOAPREF] Gudgin, M., Hadley, M., Moreau, J., and H. Nielsen, "SOAP
+ Version 1.2 Part 1: Messaging Framework (Second Edition)",
+ W3C Recommendation REC-SOAP12-part1-20070427, April 2007,
+ <http://www.w3.org/TR/soap12-part1/>.
+
+13.2. Informative References
+
+ [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818,
+ DOI 10.17487/RFC2818, May 2000,
+ <http://www.rfc-editor.org/info/rfc2818>.
+
+ [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321,
+ DOI 10.17487/RFC5321, October 2008,
+ <http://www.rfc-editor.org/info/rfc5321>.
+
+ [W3C.REC-xml-20081126]
+ Sperberg-McQueen, C., Yergeau, F., Bray, T., Maler, E.,
+ and J. Paoli, "Extensible Markup Language (XML) 1.0 (Fifth
+ Edition)", W3C Recommendation REC-xml-20081126, November
+ 2008, <http://www.w3.org/TR/2008/REC-xml-20081126>.
+
+ [WSDLREF] Christensen, E., Curbera, F., Meredith, G., and S.
+ Weerawarana, "Web Services Description Language (WSDL)
+ 1.1", W3C Note NOTE-wsdl-20010315, March 2001,
+ <http://www.w3.org/TR/2001/NOTE-wsdl-20010315>.
+
+Acknowledgements
+
+ This document is a result of various discussions held with the IETF
+ DRINKS working group, specifically the protocol design team, with
+ contributions from the following individuals, in alphabetical order:
+ Syed Ali, Vikas Bhatia, Kenneth Cartwright, Sumanth Channabasappa,
+ Lisa Dusseault, Deborah A. Guyton, Scott Hollenbeck, Otmar Lendl,
+ Manjul Maharishi, Mickael Marrache, Alexander Mayrhofer, Samuel
+ Melloul, Jean-Francois Mule, Peter Saint-Andre, David Schwartz, and
+ Richard Shockey.
+
+
+
+
+Cartwright, et al. Standards Track [Page 82]
+
+RFC 7878 SPP Protocol over SOAP August 2016
+
+
+Authors' Addresses
+
+ Kenneth Cartwright
+ TNS
+ 10740 Parkridge Boulevard
+ Reston, VA 20191
+ United States
+
+ Email: kcartwright@tnsi.com
+
+
+ Vikas Bhatia
+ TNS
+ 10740 Parkridge Boulevard
+ Reston, VA 20191
+ United States
+
+ Email: vbhatia@tnsi.com
+
+
+ Jean-Francois Mule
+ Apple Inc.
+ 1 Infinite Loop
+ Cupertino, CA 95014
+ United States
+
+ Email: jfmule@apple.com
+
+
+ Alexander Mayrhofer
+ nic.at GmbH
+ Karlsplatz 1/2/9
+ Wien A-1010
+ Austria
+
+ Email: alexander.mayrhofer@nic.at
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cartwright, et al. Standards Track [Page 83]
+