draft-ietf-regext-unhandled-namespaces-05.txt   draft-ietf-regext-unhandled-namespaces-06.txt 
Network Working Group J. Gould Network Working Group J. Gould
Internet-Draft VeriSign, Inc. Internet-Draft VeriSign, Inc.
Intended status: Standards Track M. Casanova Intended status: Standards Track M. Casanova
Expires: 19 May 2021 SWITCH Expires: 10 June 2021 SWITCH
15 November 2020 7 December 2020
Extensible Provisioning Protocol (EPP) Unhandled Namespaces Extensible Provisioning Protocol (EPP) Unhandled Namespaces
draft-ietf-regext-unhandled-namespaces-05 draft-ietf-regext-unhandled-namespaces-06
Abstract Abstract
The Extensible Provisioning Protocol (EPP), as defined in RFC 5730, The Extensible Provisioning Protocol (EPP), as defined in RFC 5730,
includes a method for the client and server tof determine the objects includes a method for the client and server to determine the objects
to be managed during a session and the object extensions to be used to be managed during a session and the object extensions to be used
during a session. The services are identified using namespace URIs. during a session. The services are identified using namespace URIs.
How should the server handle service data that needs to be returned How should the server handle service data that needs to be returned
in the response when the client does not support the required service in the response when the client does not support the required service
namespace URI, which is referred to as an unhandled namespace? An namespace URI, which is referred to as an unhandled namespace? An
unhandled namespace is a significant issue for the processing of RFC unhandled namespace is a significant issue for the processing of RFC
5730 poll messages, since poll messages are inserted by the server 5730 poll messages, since poll messages are inserted by the server
prior to knowing the supported client services, and the client needs prior to knowing the supported client services, and the client needs
to be capable of processing all poll messages. This document defines to be capable of processing all poll messages. This document defines
an operational practice that enables the server to return information an operational practice that enables the server to return information
skipping to change at page 1, line 44 skipping to change at page 1, line 44
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 19 May 2021. This Internet-Draft will expire on 10 June 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 30 skipping to change at page 2, line 30
3.1. Unhandled Object-Level Extension . . . . . . . . . . . . 5 3.1. Unhandled Object-Level Extension . . . . . . . . . . . . 5
3.2. Unhandled Command-Response Extension . . . . . . . . . . 7 3.2. Unhandled Command-Response Extension . . . . . . . . . . 7
4. Signaling Client and Server Support . . . . . . . . . . . . . 10 4. Signaling Client and Server Support . . . . . . . . . . . . . 10
5. Usage with General EPP Responses . . . . . . . . . . . . . . 10 5. Usage with General EPP Responses . . . . . . . . . . . . . . 10
6. Usage with Poll Message EPP Responses . . . . . . . . . . . . 12 6. Usage with Poll Message EPP Responses . . . . . . . . . . . . 12
7. Implementation Considerations . . . . . . . . . . . . . . . . 15 7. Implementation Considerations . . . . . . . . . . . . . . . . 15
7.1. Client Implementation Considerations . . . . . . . . . . 15 7.1. Client Implementation Considerations . . . . . . . . . . 15
7.2. Server Implementation Considerations . . . . . . . . . . 16 7.2. Server Implementation Considerations . . . . . . . . . . 16
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 16 8.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 16
8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 17 8.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 16
9. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 9. Implementation Status . . . . . . . . . . . . . . . . . . . . 17
9.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 18 9.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 17
9.2. SWITCH Automated DNSSEC Provisioning Process . . . . . . 18 9.2. SWITCH Automated DNSSEC Provisioning Process . . . . . . 18
10. Security Considerations . . . . . . . . . . . . . . . . . . . 18 10. Security Considerations . . . . . . . . . . . . . . . . . . . 18
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 19
12.1. Normative References . . . . . . . . . . . . . . . . . . 19 12.1. Normative References . . . . . . . . . . . . . . . . . . 19
12.2. Informative References . . . . . . . . . . . . . . . . . 20 12.2. Informative References . . . . . . . . . . . . . . . . . 20
Appendix A. Change History . . . . . . . . . . . . . . . . . . . 20 Appendix A. Change History . . . . . . . . . . . . . . . . . . . 20
A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 20 A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 20
A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 20 A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 20
A.3. Change from 02 to REGEXT 00 . . . . . . . . . . . . . . . 20 A.3. Change from 02 to REGEXT 00 . . . . . . . . . . . . . . . 20
A.4. Change from REGEXT 00 to REGEXT 01 . . . . . . . . . . . 20 A.4. Change from REGEXT 00 to REGEXT 01 . . . . . . . . . . . 20
A.5. Change from REGEXT 01 to REGEXT 02 . . . . . . . . . . . 20 A.5. Change from REGEXT 01 to REGEXT 02 . . . . . . . . . . . 20
A.6. Change from REGEXT 02 to REGEXT 03 . . . . . . . . . . . 21 A.6. Change from REGEXT 02 to REGEXT 03 . . . . . . . . . . . 21
A.7. Change from REGEXT 03 to REGEXT 04 . . . . . . . . . . . 21 A.7. Change from REGEXT 03 to REGEXT 04 . . . . . . . . . . . 21
A.8. Change from REGEXT 04 to REGEXT 05 . . . . . . . . . . . 21 A.8. Change from REGEXT 04 to REGEXT 05 . . . . . . . . . . . 21
A.9. Change from REGEXT 05 to REGEXT 06 . . . . . . . . . . . 21
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21
1. Introduction 1. Introduction
The Extensible Provisioning Protocol (EPP), as defined in [RFC5730], The Extensible Provisioning Protocol (EPP), as defined in [RFC5730],
includes a method for the client and server to determine the objects includes a method for the client and server to determine the objects
to be managed during a session and the object extensions to be used to be managed during a session and the object extensions to be used
during a session. The services are identified using namespace URIs. during a session. The services are identified using namespace URIs.
How should the server handle service data that needs to be returned How should the server handle service data that needs to be returned
in the response when the client does not support the required service in the response when the client does not support the required service
skipping to change at page 4, line 26 skipping to change at page 4, line 26
An Unhandled Namespace is an XML namespace that is associated with a An Unhandled Namespace is an XML namespace that is associated with a
response extension that is not included in the client-specified EPP response extension that is not included in the client-specified EPP
login services of [RFC5730]. The EPP login services consists of the login services of [RFC5730]. The EPP login services consists of the
set of XML namespace URIs included in the <objURI> or <extURI> set of XML namespace URIs included in the <objURI> or <extURI>
elements of the [RFC5730] EPP <login> command. The services elements of the [RFC5730] EPP <login> command. The services
supported by the server are included in the <objURI> and <extURI> supported by the server are included in the <objURI> and <extURI>
elements of the [RFC5730] EPP <greeting>, which should be a superset elements of the [RFC5730] EPP <greeting>, which should be a superset
of the login services included in the EPP <login> command. A server of the login services included in the EPP <login> command. A server
may have information associated with a specific namespace that it may have information associated with a specific namespace that it
needs to return in the response to a client. The unhandled needs to return in the response to a client. The unhandled
namespaces problem exists when the server has information, that it namespaces problem exists when the server has information that it
needs to return to the client, that is not supported by the client needs to return to the client but the namespace of the information is
based on the negotiated EPP <login> command services. not supported by the client based on the negotiated EPP <login>
command services.
3. Use of EPP <extValue> for Unhandled Namespace Data 3. Use of EPP <extValue> for Unhandled Namespace Data
In [RFC5730], the <extValue> element is used to provide additional In [RFC5730], the <extValue> element is used to provide additional
error diagnostic information, including the <value> element that error diagnostic information, including the <value> element that
identifies the client-provided element that caused a server error identifies the client-provided element that caused a server error
condition, and the <reason> element containing the human-readable condition and the <reason> element containing the human-readable
message that describes the reason for the error. This operational message that describes the reason for the error. This operational
practice extends the use of the <extValue> element for the purpose of practice extends the use of the <extValue> element for the purpose of
returning unhandled namespace information in a successful response. returning unhandled namespace information in a successful response.
When a server has data to return to the client, that the client does When a server has data to return to the client that the client does
not support based on the login services, the server MAY return a not support based on the login services, the server MAY return a
successful response, with the data for each unsupported namespace successful response, with the data for each unsupported namespace
moved into an [RFC5730] <extValue> element. The unhandled namespace moved into an [RFC5730] <extValue> element. The unhandled namespace
will not cause an error response, but the unhandled namespace data will not cause an error response, but the unhandled namespace data
will instead be moved to an <extValue> element, along with a reason will instead be moved to an <extValue> element, along with a reason
why the unhandled namespace data could not be included in the why the unhandled namespace data could not be included in the
appropriate location of the response. The <extValue> element XML appropriate location of the response. The <extValue> element XML
will not be processed by the XML processor. The <extValue> element will not be processed by the XML processor. The <extValue> element
contains the following child elements: contains the following child elements:
skipping to change at page 8, line 15 skipping to change at page 8, line 15
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: </result> S: </result>
S: <extension> S: <extension>
S: [NAMESPACE-XML] S: [NAMESPACE-XML]
S: </extension> S: </extension>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S:</epp> S:</epp>
Template unhandled namespace response for an unsupported command- Template unhandled namespace response for an unsupported command-
response extension. The [NAMESPACE-XML] variable represents the response extension. The [NAMESPACE-XML] variable represents the
command-response extension XML and the [NAMESPACE-URI] variable command-response extension XML and the [NAMESPACE-URI] variable
represents the command-response extension XML namespace URI. represents the command-response extension XML namespace URI.
skipping to change at page 9, line 15 skipping to change at page 9, line 15
[RFC5910] DS Data Interface <info> response converted into an [RFC5910] DS Data Interface <info> response converted into an
unhandled namespace response. unhandled namespace response.
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: <extValue> S: <extValue>
S: <value> S: <value>
S: <secDNS:infData S: <secDNS:infData
S: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"> S: xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
S: <secDNS:dsData> S: <secDNS:dsData>
S: <secDNS:keyTag>12345</secDNS:keyTag> S: <secDNS:keyTag>12345</secDNS:keyTag>
S: <secDNS:alg>3</secDNS:alg> S: <secDNS:alg>3</secDNS:alg>
S: <secDNS:digestType>1</secDNS:digestType> S: <secDNS:digestType>1</secDNS:digestType>
S: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest> S: <secDNS:digest>49FD46E6C4B45C55D4AC</secDNS:digest>
S: </secDNS:dsData> S: </secDNS:dsData>
S: </secDNS:infData> S: </secDNS:infData>
S: </value> S: </value>
S: <reason> S: <reason>
S: urn:ietf:params:xml:ns:secDNS-1.1 not in login services S: urn:ietf:params:xml:ns:secDNS-1.1 not in login services
S: </reason> S: </reason>
S: </extValue> S: </extValue>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:infData S: <domain:infData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:roid>EXAMPLE1-REP</domain:roid> S: <domain:roid>EXAMPLE1-REP</domain:roid>
S: <domain:status s="ok"/> S: <domain:status s="ok"/>
S: <domain:registrant>jd1234</domain:registrant> S: <domain:registrant>jd1234</domain:registrant>
S: <domain:contact type="admin">sh8013</domain:contact> S: <domain:contact type="admin">sh8013</domain:contact>
S: <domain:contact type="tech">sh8013</domain:contact> S: <domain:contact type="tech">sh8013</domain:contact>
S: <domain:ns> S: <domain:ns>
S: <domain:hostObj>ns1.example.com</domain:hostObj> S: <domain:hostObj>ns1.example.com</domain:hostObj>
S: <domain:hostObj>ns2.example.com</domain:hostObj> S: <domain:hostObj>ns2.example.com</domain:hostObj>
S: </domain:ns> S: </domain:ns>
S: <domain:host>ns1.example.com</domain:host> S: <domain:host>ns1.example.com</domain:host>
S: <domain:host>ns2.example.com</domain:host> S: <domain:host>ns2.example.com</domain:host>
S: <domain:clID>ClientX</domain:clID> S: <domain:clID>ClientX</domain:clID>
S: <domain:crID>ClientY</domain:crID> S: <domain:crID>ClientY</domain:crID>
S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate> S: <domain:crDate>1999-04-03T22:00:00.0Z</domain:crDate>
S: <domain:upID>ClientX</domain:upID> S: <domain:upID>ClientX</domain:upID>
S: <domain:upDate>2020-12-03T09:00:00.0Z</domain:upDate> S: <domain:upDate>1999-12-03T09:00:00.0Z</domain:upDate>
S: <domain:exDate>2021-04-03T22:00:00.0Z</domain:exDate> S: <domain:exDate>2005-04-03T22:00:00.0Z</domain:exDate>
S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate> S: <domain:trDate>2000-04-08T09:00:00.0Z</domain:trDate>
S: <domain:authInfo> S: <domain:authInfo>
S: <domain:pw>2fooBAR</domain:pw> S: <domain:pw>2fooBAR</domain:pw>
S: </domain:authInfo> S: </domain:authInfo>
S: </domain:infData> S: </domain:infData>
S: </resData> S: </resData>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
S: </trID> S: </trID>
skipping to change at page 10, line 28 skipping to change at page 10, line 28
practice using the existing EPP protocol, where the client and the practice using the existing EPP protocol, where the client and the
server can signal support for the operational practice using a server can signal support for the operational practice using a
namespace URI in the login and greeting extension services. The namespace URI in the login and greeting extension services. The
namespace URI "urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0" namespace URI "urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0"
is used to signal support for the operational practice. The client is used to signal support for the operational practice. The client
includes the namespace URI in an <svcExtension> <extURI> element of includes the namespace URI in an <svcExtension> <extURI> element of
the [RFC5730] <login> Command. The server includes the namespace URI the [RFC5730] <login> Command. The server includes the namespace URI
in an <svcExtension> <extURI> element of the [RFC5730] Greeting. in an <svcExtension> <extURI> element of the [RFC5730] Greeting.
A client that receives the namespace URI in the server's Greeting A client that receives the namespace URI in the server's Greeting
extension services, can expect the following supported behavior by extension services can expect the following supported behavior by the
the server: server:
1. Support unhandled namespace object-level extensions and command- 1. Support unhandled namespace object-level extensions and command-
response extensions in EPP poll messages, per Section 6. response extensions in EPP poll messages, per Section 6.
2. Support the option of unhandled namespace command-response 2. Support the option of unhandled namespace command-response
extensions in general EPP responses, per Section 5. extensions in general EPP responses, per Section 5.
A server that receives the namespace URI in the client's <login> A server that receives the namespace URI in the client's <login>
Command extension services, can expect the following supported Command extension services can expect the following supported
behavior by the client: behavior by the client:
1. Support monitoring the EPP poll messages and general EPP 1. Support monitoring the EPP poll messages and general EPP
responses for unhandled namespaces. responses for unhandled namespaces.
5. Usage with General EPP Responses 5. Usage with General EPP Responses
The unhandled namespace approach defined in Section 3 MAY be used for The unhandled namespace approach defined in Section 3 MAY be used for
a general EPP response to an EPP command. A general EPP response a general EPP response to an EPP command. A general EPP response
includes any non-poll message EPP response. The use of the unhandled includes any non-poll message EPP response. The use of the unhandled
skipping to change at page 11, line 20 skipping to change at page 11, line 20
returned when the server successfully executes an object-level EPP returned when the server successfully executes an object-level EPP
command extension. The server MAY return an unhandled object-level command extension. The server MAY return an unhandled object-level
extension to the client as defined in Section 3.1. extension to the client as defined in Section 3.1.
Returning domain name Redemption Grace Period (RGP) data, based on Returning domain name Redemption Grace Period (RGP) data, based on
[RFC3915], provides an example of applying the unhandled namespace [RFC3915], provides an example of applying the unhandled namespace
approach for a general EPP response. If the client does not include approach for a general EPP response. If the client does not include
the "urn:ietf:params:xml:ns:rgp-1.0" namespace URI in the login the "urn:ietf:params:xml:ns:rgp-1.0" namespace URI in the login
services, and the domain <info> response of a domain name does have services, and the domain <info> response of a domain name does have
RGP information, the server MAY exclude the <rgp:infData> element RGP information, the server MAY exclude the <rgp:infData> element
from the EPP response or MAY include it under in the <extValue> from the EPP response or MAY include it under the <extValue> element
element per Section 3.2. per Section 3.2.
[RFC5731] domain name <info> response with the unhandled [RFC3915] [RFC5731] domain name <info> response with the unhandled [RFC3915]
<rgp:infData> element included under an <extValue> element: <rgp:infData> element included under an <extValue> element:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1000"> S: <result code="1000">
S: <msg>Command completed successfully</msg> S: <msg>Command completed successfully</msg>
S: <extValue> S: <extValue>
skipping to change at page 11, line 44 skipping to change at page 11, line 44
S: <rgp:rgpStatus s="redemptionPeriod"/> S: <rgp:rgpStatus s="redemptionPeriod"/>
S: </rgp:infData> S: </rgp:infData>
S: </value> S: </value>
S: <reason> S: <reason>
S: urn:ietf:params:xml:ns:rgp-1.0 not in login services S: urn:ietf:params:xml:ns:rgp-1.0 not in login services
S: </reason> S: </reason>
S: </extValue> S: </extValue>
S: </result> S: </result>
S: <resData> S: <resData>
S: <domain:infData S: <domain:infData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>example.com</domain:name> S: <domain:name>example.com</domain:name>
S: <domain:roid>EXAMPLE1-REP</domain:roid> S: <domain:roid>EXAMPLE1-REP</domain:roid>
S: <domain:status s="pendingDelete"/> S: <domain:status s="pendingDelete"/>
S: <domain:registrant>jd1234</domain:registrant> S: <domain:registrant>jd1234</domain:registrant>
S: <domain:contact type="admin">sh8013</domain:contact> S: <domain:contact type="admin">sh8013</domain:contact>
S: <domain:contact type="tech">sh8013</domain:contact> S: <domain:contact type="tech">sh8013</domain:contact>
S: <domain:ns> S: <domain:ns>
S: <domain:hostObj>ns1.example.com</domain:hostObj> S: <domain:hostObj>ns1.example.com</domain:hostObj>
S: <domain:hostObj>ns1.example.net</domain:hostObj> S: <domain:hostObj>ns1.example.net</domain:hostObj>
S: </domain:ns> S: </domain:ns>
skipping to change at page 13, line 17 skipping to change at page 13, line 17
<extValue> element: <extValue> element:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response> S: <response>
S: <result code="1301"> S: <result code="1301">
S: <msg>Command completed successfully; ack to dequeue</msg> S: <msg>Command completed successfully; ack to dequeue</msg>
S: <extValue> S: <extValue>
S: <value> S: <value>
S: <changePoll:changeData S: <changePoll:changeData
S: xmlns:changePoll="urn:ietf:params:xml:ns:changePoll-1.0" S: xmlns:changePoll=
S: "urn:ietf:params:xml:ns:changePoll-1.0"
S: state="after"> S: state="after">
S: <changePoll:operation>update</changePoll:operation> S: <changePoll:operation>update</changePoll:operation>
S: <changePoll:date> S: <changePoll:date>
S: 2020-11-22T05:00:00.000Z</changePoll:date> S: 2020-11-22T05:00:00.000Z</changePoll:date>
S: <changePoll:svTRID>12345-XYZ</changePoll:svTRID> S: <changePoll:svTRID>12345-XYZ</changePoll:svTRID>
S: <changePoll:who>URS Admin</changePoll:who> S: <changePoll:who>URS Admin</changePoll:who>
S: <changePoll:caseId type="urs">urs123 S: <changePoll:caseId type="urs">urs123
S: </changePoll:caseId> S: </changePoll:caseId>
S: <changePoll:reason>URS Lock</changePoll:reason> S: <changePoll:reason>URS Lock</changePoll:reason>
S: </changePoll:changeData> S: </changePoll:changeData>
S: </value> S: </value>
S: <reason> S: <reason>
S: urn:ietf:params:xml:ns:changePoll-1.0 not in login services S: urn:ietf:params:xml:ns:changePoll-1.0 not in login services
S: </reason> S: </reason>
S: </extValue> S: </extValue>
S: </result> S: </result>
S: <msgQ S: <msgQ count="15" id="1">
S: count="15"
S: id="1"
S: >
S: <qDate>2020-11-22T05:00:00.000Z</qDate> S: <qDate>2020-11-22T05:00:00.000Z</qDate>
S: <msg>Registry initiated update of domain.</msg> S: <msg>Registry initiated update of domain.</msg>
S: </msgQ> S: </msgQ>
S: <resData> S: <resData>
S: <domain:infData S: <domain:infData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>change-poll.tld</domain:name> S: <domain:name>change-poll.tld</domain:name>
S: <domain:roid>EXAMPLE1-REP</domain:roid> S: <domain:roid>EXAMPLE1-REP</domain:roid>
S: <domain:status s="serverUpdateProhibited"/> S: <domain:status s="serverUpdateProhibited"/>
S: <domain:status s="serverDeleteProhibited"/> S: <domain:status s="serverDeleteProhibited"/>
skipping to change at page 15, line 19 skipping to change at page 15, line 17
S: <changePoll:date> S: <changePoll:date>
S: 2020-11-22T05:00:00.000Z</changePoll:date> S: 2020-11-22T05:00:00.000Z</changePoll:date>
S: <changePoll:svTRID>12345-XYZ</changePoll:svTRID> S: <changePoll:svTRID>12345-XYZ</changePoll:svTRID>
S: <changePoll:who>URS Admin</changePoll:who> S: <changePoll:who>URS Admin</changePoll:who>
S: <changePoll:caseId type="urs">urs123 S: <changePoll:caseId type="urs">urs123
S: </changePoll:caseId> S: </changePoll:caseId>
S: <changePoll:reason>URS Lock</changePoll:reason> S: <changePoll:reason>URS Lock</changePoll:reason>
S: </changePoll:changeData> S: </changePoll:changeData>
S: </value> S: </value>
S: <reason> S: <reason>
S: urn:ietf:params:xml:ns:changePoll-1.0 not in login services S: urn:ietf:params:xml:ns:changePoll-1.0 not in login services
S: </reason> S: </reason>
S: </extValue> S: </extValue>
S: </result> S: </result>
S: <msgQ S: <msgQ count="15" id="1">
S: count="15"
S: id="1"
S: >
S: <qDate>2020-11-22T05:00:00.000Z</qDate> S: <qDate>2020-11-22T05:00:00.000Z</qDate>
S: <msg>Registry initiated update of domain.</msg> S: <msg>Registry initiated update of domain.</msg>
S: </msgQ> S: </msgQ>
S: <trID> S: <trID>
S: <clTRID>ABC-12345</clTRID> S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID> S: <svTRID>54322-XYZ</svTRID>
S: </trID> S: </trID>
S: </response> S: </response>
S:</epp> S:</epp>
7. Implementation Considerations 7. Implementation Considerations
There are implementation considerations for the client and the server There are implementation considerations for the client and the server
to help address the risk of the client ignoring unhandled namespace to help address the risk of the client ignoring unhandled namespace
information included in an EPP response that is needed to meet information included in an EPP response that is needed to meet
technical, policy, or legal requirements. technical, policy, or legal requirements.
7.1. Client Implementation Considerations 7.1. Client Implementation Considerations
To reduce the likelihood of a client receiving unhandled namespace To reduce the likelihood of a client receiving unhandled namespace
information, the client should consider the following: information, the client should consider implementing the following:
1. Ensure that the client presents the complete set of what it
supports when presenting its login services. If there are gaps
between the services supported by the client and the login
services included in the login command, the client may receive
unhandled namespace information that the client could have
supported.
1. Ensure that the login services is accurate with what is supported
by the client. If there are gaps between the services supported
by the client and the login services included in the login
command, the client may receive unhandled namespace information
that the client could have supported.
2. Support all of the services included in the server greeting 2. Support all of the services included in the server greeting
services that may be included in an EPP response, including the services that may be included in an EPP response, including the
poll queue responses. The client should evaluate the gaps poll queue responses. The client should evaluate the gaps
between the greeting services and the login services provided in between the greeting services and the login services provided in
the login command to identify extensions that need to be the login command to identify extensions that need to be
supported. supported.
3. Proactively monitor for unhandled namespace information in the 3. Proactively monitor for unhandled namespace information in the
EPP responses, by looking for the inclusion of the <extValue> EPP responses, by looking for the inclusion of the <extValue>
element in successful responses, recording the unsupported element in successful responses, recording the unsupported
namespace included in the <reason> element, and recording the namespace included in the <reason> element, and recording the
unhandled namespace information included in the <value> element unhandled namespace information included in the <value> element
for later processing. The unhandled namespace can be implemented for later processing. The unhandled namespace should be
by the client to ensure that information is processed fully in implemented by the client to ensure that information is processed
future EPP responses. fully in future EPP responses.
7.2. Server Implementation Considerations 7.2. Server Implementation Considerations
To assist the clients in recognizing unhandled namespaces, the server To assist the clients in recognizing unhandled namespaces, the server
should consider the following: should consider implementing the following:
1. Monitor for returning unhandled namespace information to clients 1. Monitor for returning unhandled namespace information to clients
and report it to the clients out-of-band to EPP so the clients and report it to the clients out-of-band to EPP so the clients
can add support for the unhandled namespaces. can add support for the unhandled namespaces.
2. Look for the unhandled namespace support in the login services 2. Look for the unhandled namespace support in the login services
when returning optional unhandled namespace information in when returning optional unhandled namespace information in
General EPP Responses. General EPP Responses.
8. IANA Considerations 8. IANA Considerations
skipping to change at page 21, line 40 skipping to change at page 21, line 38
returning unhandled namespace information. returning unhandled namespace information.
2. Based on feedback from Thomas Corte, added a Implementation 2. Based on feedback from Thomas Corte, added a Implementation
Considerations section to cover client and server implementation Considerations section to cover client and server implementation
recommendations such as monitoring unhandled namespaces in the recommendations such as monitoring unhandled namespaces in the
server to report to the clients out-of-band and monitoring for server to report to the clients out-of-band and monitoring for
responses containing unhanded namespace information in the client responses containing unhanded namespace information in the client
to proactively add support for the unhandled namespaces. to proactively add support for the unhandled namespaces.
3. Moved RFC 3735 and RFC 7451 to informative references to address 3. Moved RFC 3735 and RFC 7451 to informative references to address
down reference errors in idnits. down reference errors in idnits.
A.9. Change from REGEXT 05 to REGEXT 06
1. Nit updates made based on the feedback provided by the Document
Shepherd, David Smith.
Authors' Addresses Authors' Addresses
James Gould James Gould
VeriSign, Inc. VeriSign, Inc.
12061 Bluemont Way 12061 Bluemont Way
Reston, VA 20190 Reston, VA 20190
United States of America United States of America
Email: jgould@verisign.com Email: jgould@verisign.com
URI: http://www.verisigninc.com URI: http://www.verisigninc.com
 End of changes. 29 change blocks. 
52 lines changed or deleted 56 lines changed or added

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