Internet DRAFT - draft-wilcox-cira-idn-eppext

draft-wilcox-cira-idn-eppext







Internet Engineering Task Force                       S. Olmstead-Wilcox
Internet-Draft                                                 J. Latour
Intended status: Informational                                      CIRA
Expires: September 7, 2015                                  JF. Tremblay
                                                                Viagenie
                                                           March 6, 2015


                         CIRA IDN EPP Extension
                    draft-wilcox-cira-idn-eppext-00

Abstract

   The Canadian Internet Registration Authority (CIRA), administering
   the .CA country-code top-level domain, offers internationalized
   domain names (IDN) in French, one of Canada's official languages.
   CIRA's Extensible Provisioning Protocol (EPP) services have been
   augmented with an IDN EPP extension in order to support registrars
   desiring to register internationalized domains using French
   characters as bundled domains.

   This document defines the extension to the Extensible Provisioning
   Protocol used at CIRA to support IDN operations.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 7, 2015.

Copyright Notice

   Copyright (c) 2015 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



Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 1]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   (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.  Operational Requirements  . . . . . . . . . . . . . . . . . .   3
     2.1.  IDN Labels  . . . . . . . . . . . . . . . . . . . . . . .   4
     2.2.  Repertoires . . . . . . . . . . . . . . . . . . . . . . .   4
     2.3.  French IDN Characters Variants  . . . . . . . . . . . . .   4
     2.4.  Bundling and Registration Policy  . . . . . . . . . . . .   5
     2.5.  Domain Lists  . . . . . . . . . . . . . . . . . . . . . .   6
   3.  Object Elements . . . . . . . . . . . . . . . . . . . . . . .   6
     3.1.  U-Labels  . . . . . . . . . . . . . . . . . . . . . . . .   7
     3.2.  Repertoires . . . . . . . . . . . . . . . . . . . . . . .   7
     3.3.  DomainVariants  . . . . . . . . . . . . . . . . . . . . .   7
     3.4.  BundleDomains . . . . . . . . . . . . . . . . . . . . . .   8
     3.5.  Info  . . . . . . . . . . . . . . . . . . . . . . . . . .   8
   4.  EPP Extension Object  . . . . . . . . . . . . . . . . . . . .   8
     4.1.  The ciraIdnCheck Object . . . . . . . . . . . . . . . . .   8
     4.2.  The ciraIdnInfo Object  . . . . . . . . . . . . . . . . .   8
     4.3.  The ciraIdnCreate Object  . . . . . . . . . . . . . . . .   9
   5.  EPP Command Mapping . . . . . . . . . . . . . . . . . . . . .   9
     5.1.  EPP Query Commands  . . . . . . . . . . . . . . . . . . .   9
       5.1.1.  EPP <check> Command . . . . . . . . . . . . . . . . .   9
       5.1.2.  EPP <info> Command  . . . . . . . . . . . . . . . . .  11
       5.1.3.  EPP <poll> Command  . . . . . . . . . . . . . . . . .  14
       5.1.4.  EPP <transfer> Command  . . . . . . . . . . . . . . .  14
     5.2.  EPP Transform Commands  . . . . . . . . . . . . . . . . .  14
       5.2.1.  EPP <create> Command  . . . . . . . . . . . . . . . .  14
       5.2.2.  EPP <delete> Command  . . . . . . . . . . . . . . . .  15
       5.2.3.  EPP <renew> Command . . . . . . . . . . . . . . . . .  16
       5.2.4.  EPP <transfer> Command  . . . . . . . . . . . . . . .  16
       5.2.5.  EPP <update> Command  . . . . . . . . . . . . . . . .  16
   6.  Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . .  16
     6.1.  Schema for cira-idn-1.0 . . . . . . . . . . . . . . . . .  16
     6.2.  Schema for cira-idn-bundle-1.0  . . . . . . . . . . . . .  18
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  19
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  20
   9.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  20
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  20
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  20
     10.2.  Informative References . . . . . . . . . . . . . . . . .  21



Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 2]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  22

1.  Introduction

   This document describes an extension to the Extensible Provisioning
   Protocol (EPP) providing support for the internationalization of
   domain names (IDN) and other related functions.  This EPP extension
   is used at the Canadian Internet Registration Authority (CIRA) to
   support IDN operations for French, one of Canada's official
   languages.

   The design of this EPP extension is based on a number of requirements
   from the CIRA registry.  A first requirement is to exchange IDN
   labels with registrars during create operations.  There is also a
   need to exchange information about the set of characters supported by
   the registry.  This set is called a repertoire throughout the
   document, as a synonym with IDN-table.

   Registry policies often prevent the registration of similar-looking
   IDN labels by different registrants.  CIRA policies allow each IDN
   label to be registered independently, removing the need for a
   registration bundle structure as described in [RFC4290] or more
   recently in [ID.draft-kong-eppext-bundling-registration].  The
   policies also specify that all the label variants must be linked to a
   single registrant-registrar pair, even if some variants aren't
   registered.

   In order to support this, a simple list of label variants is used.
   No zone information or registration information is included in that
   list.  By providing such list to a registrar, a registry has the
   capacity to inform a registrar of the possible label variants without
   relying on the accurate processing of complex Label Generation
   Rulesets (LGR) on the registrar side, minimizing risks of errors.

   The CIRA IDN EPP extension defines three objects named createType,
   infDataType and checkType, respectively used in <create>, <info> and
   <check> EPP commands.  These objects contain elements describing a
   "repertoire", as a set of variant Unicode code points, an IDN label
   in U-label form and "domainVariants", a list of variant labels
   accepted by the registry (also called bundle).  A new type named
   repertoireType is also defined.  This type is used to carry a set of
   variant Unicode code points supported by a registry.

2.  Operational Requirements

   This section explains the rationale and detailed requirements behind
   CIRA's EPP extension for IDN.




Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 3]

Internet-Draft           CIRA IDN EPP Extension               March 2015


2.1.  IDN Labels

   The first requirement relating to IDN support is to allow registrars
   to specify a U-label string in a create operation.  For this purpose
   a new element is required, in this case called 'u-label'.

2.2.  Repertoires

   French being the first IDN language supported at CIRA, it would be
   possible to accept EPP create operations without other information
   than the U-label and to consider the French character set as the
   default for all operations, which would include the base English
   character set already in place.  However CIRA did not want to
   preclude the possibility to add support for other languages in the
   future or to add supplementary constrained character sets.  The
   registrars are therefore required to specify the character set in
   every create operation.

   The character set is being specified in a repertoire type as a
   string.  The name 'repertoire' as used here represents the set of
   code points variants accepted by policy by the registry for a
   specific language.  This has the same meaning as the definition of
   idn:table identifier defined in
   [ID.draft-kong-eppext-bundling-registration].

   The string used to identify a repertoire may be similar in content to
   a language tag, but shouldn't be confused with a language, as the
   character set approved by policy by a registry may represent a subset
   of an official language's character set.  See section 1.3 of
   [RFC4290] for a more detailed discussion on possible confusion in
   usage.

2.3.  French IDN Characters Variants

   The code points below are included in the implementation of French
   IDN by CIRA.  Each French accented character is considered a variant
   of the base character.














Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 4]

Internet-Draft           CIRA IDN EPP Extension               March 2015


    ----------- ----------------------------------------------------
   | Code Point |              French                  |   Base     |
   |            |            Character                 | Character  |
    ----------- -------------------------------------- ------------
   |   U+00E0   | LATIN SMALL LETTER A WITH GRAVE      |    a       |
   |   U+00E2   | LATIN SMALL LETTER A WITH CIRCUMFLEX |    a       |
   |   U+00E7   | LATIN SMALL LETTER C WITH CEDILLA    |    c       |
   |   U+00E8   | LATIN SMALL LETTER E WITH GRAVE      |    e       |
   |   U+00E9   | LATIN SMALL LETTER E WITH ACUTE      |    e       |
   |   U+00EA   | LATIN SMALL LETTER E WITH CIRCUMFLEX |    e       |
   |   U+00EB   | LATIN SMALL LETTER E WITH DIAERESIS  |    e       |
   |   U+00EE   | LATIN SMALL LETTER I WITH CIRCUMFLEX |    i       |
   |   U+00EF   | LATIN SMALL LETTER I WITH DIAERESIS  |    i       |
   |   U+00F4   | LATIN SMALL LETTER O WITH CIRCUMFLEX |    o       |
   |   U+00F9   | LATIN SMALL LETTER U WITH GRAVE      |    u       |
   |   U+00FB   | LATIN SMALL LETTER U WITH CIRCUMFLEX |    u       |
   |   U+00FC   | LATIN SMALL LETTER U WITH DIAERESIS  |    u       |
   |   U+00FF   | LATIN SMALL LETTER Y WITH DIAERESIS  |    y       |
   |   U+00E6   | LATIN SMALL LETTER AE                |    ae      |
   |   U+0153   | LATIN SMALL LIGATURE OE              |    oe      |
    ----------- ----------------------------------------------------

           Figure 1: Variant code points for French IDN at CIRA

2.4.  Bundling and Registration Policy

   A group of label variants referring to the same canonical base label
   (without accented characters) is named a bundle in this document.
   This definition is similar to the definition of registration bundle
   provided in [RFC4290], with the difference that it isn't used for
   registration at CIRA but only to retrieve information through an EPP
   <info> operation.

   Concurrent registration of different labels in a bundle is not
   required by CIRA policy.  The registration of individual variants
   remains independent, with the requirement that the registrar-
   registrant pair remains the same for every label in the bundle.  Once
   a single variant has been registered, registration of a variant by
   different registrant or registrar is prevented.  This includes the
   registration of canonical names from a period preceding IDN support.

   In a way similar to registration, transfers are handled on a per-
   label basis.  All labels within a bundle must be transferred within 5
   days otherwise the transfer is canceled.

   Label variants, besides being independently registered, are also
   allowed to have different lifetimes, expiration times and server
   information.  The limitations on the bundle are managed using the



Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 5]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   earliest registration date to the latest expiry date for all labels
   in a single bundle.  An expired variant part of a non-expired bundle
   is considered 'withheld' and cannot be registered except by the same
   registrant-registrar pair.

             Variant1   ---R++++++++++++++E---------
             Variant2   ------R++++++++++++++E------
             Variant3   ---------R++++++++++++++E---
                           |                    |
             Bundle     ---++++++++++++++++++++++---
             lifetime
                         R=Registration, E=Expiry,
                         +=valid, -=invalid


                         Figure 2: Bundle lifetime

   In the context of CIRA, the bundle object will provide additional
   information regarding the canonical base label, the registrar and the
   registrant.  Several fields relating to important dates, such as
   creation date, last update, transfer date and expiration are also
   included.  The bundle object is not used for registration and
   transfers.

2.5.  Domain Lists

   Because of the limitations on variant registration described above,
   it is desirable for the registry to specify the exact list of allowed
   label variants.  A registrar could, for example, use that list to
   display information to prospective registrants or to explain
   registration errors in a registrant-facing interface.

   The CIRA IDN EPP extension adds support for a domainList element
   returned as a result to Info operations.  The domainList contains a
   list of allowed label variants based on the requested label.

   Using a list is simpler to implement for registrars and does not
   require them to process complex rules (or Label Generation Rulesets)
   as defined in [ID.draft-davies-idntables].  This limits
   implementation errors in the parsing of these rules and the need to
   refresh and process them on a regular basis.

3.  Object Elements

   In order to cover the requirements described above, five elements are
   defined in this EPP extension.  Elements u-label, repertoire and
   domainVariants are defined as part of the base CIRA IDN extension.
   The repertoire identifies a character table (idn-table) and the



Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 6]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   domainVariants carries a list of label variants.  The two other
   elements, bundleDomain and info, are used in the bundle manipulation
   part of the extension.

3.1.  U-Labels

   The u-label element is an optional parameter used to specify
   explicitly the value of a U-label.  It will be validated against the
   A-label value found in the domain:name attribute.  It is based on the
   type labelType.

   <element name="u-label" type="eppcom:labelType" minOccurs="0"/>

3.2.  Repertoires

   The repertoire element is based on the repertoireType type defined in
   the extension and is a simple string token limited to 2 characters.
   The attribute value is linked to a character table describing which
   code points are valid for this language.

   <element name="repertoire" type="cira-idn:repertoireType" />
   <simpleType name="repertoireType">
     <restriction base="token">
       <length value="2"/>
     </restriction>
   </simpleType>

3.3.  DomainVariants

   The optional domainVariants element is based on the domainList type,
   which is a sequence of elements of labelType.  Each label enumerated
   in domainVariants represents the possible label variants for a base
   domain.

   <element name="domainVariants"
            type="cira-idn:domainList"
            minOccurs="0" />
   <complexType name="domainList">
     <sequence>
       <element name="name"
                type="eppcom:labelType"
                maxOccurs="unbounded" />
     </sequence>
   </complexType>







Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 7]

Internet-Draft           CIRA IDN EPP Extension               March 2015


3.4.  BundleDomains

   The bundleDomains element uses the same domainList type as
   domainVariants and is used in a similar way, but in a bundle object
   rather than in a ciraIdnInfo object.  The exact usage is described
   below in the extension objects section.

   <element name="bundleDomains" type="cira-idn:domainList"/>

3.5.  Info

   The info element is based on the infoType type, built out of a label
   type and a repertoire id.  This is similar to the u-label and
   repertoire types defined above, but this composed type is only used
   in bundle objects and may contain either a u-label or an a-label.

   <element name="info" type="cira-idn-bundle:infoType" />
   <complexType name="infoType">
    <sequence>
      <element name="name" type="eppcom:labelType" />
      <element name="repertoire"
               type="cira-idn:repertoireType"
               minOccurs="0"/>
    </sequence>
   </complexType>

4.  EPP Extension Object

4.1.  The ciraIdnCheck Object

   The ciraIdnCheck object is used in <check> commands requests to
   specify which repertoire (language) is used.  Multiple repertoire
   elements may be specified if needed.

   <element name="ciraIdnCheck" type="cira-idn:checkType" />
   <complexType name="checkType">
     <sequence>
       <element name="repertoire" type="cira-idn:repertoireType" />
     </sequence>
   </complexType>

4.2.  The ciraIdnInfo Object

   The ciraIdnInfo object is used in <info> command responses to a
   client when multiple IDN labels variants exist according to the
   registry policies.





Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 8]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   <element name="ciraIdnInfo" type="cira-idn:infDataType" />
   <complexType name="infDataType">
     <sequence>
       <element name="domainVariants"
                type="cira-idn:domainList"
                minOccurs="0" />
     </sequence>
   </complexType>

4.3.  The ciraIdnCreate Object

   The ciraIdnInfo object is used in <info> command responses to a
   client when multiple IDN labels variants exist according to the
   registry policies.

   <element name="ciraIdnCreate" type="cira-idn:createType"/>
     <complexType name="createType">
     <sequence>
       <element name="repertoire" type="cira-idn:repertoireType" />
       <element name="u-label" type="eppcom:labelType" minOccurs="0"/>
     </sequence>
   </complexType>

5.  EPP Command Mapping

5.1.  EPP Query Commands

5.1.1.  EPP <check> Command

   The following is an example of IDN EPP Domain Check transaction in
   which the client includes the ciraIdnCheck object in the request:

   C: <?xml version="1.0" encoding="UTF-8"?>
   C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   C:   <command>
   C:     <check>
   C:       <domain:check
             xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:         <domain:name>abc123.ca</domain:name>
   C:         <domain:name>xyz987.ca</domain:name>
   C:         <domain:name>xn--r-wfan6a.ca</domain:name>
   C:       </domain:check>
   C:     </check>
   C:     <extension>
   C:       <cira-idn:ciraIdnCheck
                xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0">
   C:         <cira-idn:repertoire>fr</cira-idn:repertoire>
   C:       </cira-idn:ciraIdnCheck>



Olmstead-Wilcox, et al. Expires September 7, 2015               [Page 9]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   C:     </extension>
   C:     <clTRID>ABC-12346</clTRID>
   C:   </command>
   C: </epp>

   S: <?xml version="1.0" encoding="UTF-8"?>
   S: <epp xmlns:cira="urn:ietf:params:xml:ns:cira1.0"
   S:      xmlns="urn:ietf:params:xml:ns:epp-1.0"
   S:      xmlns:host="urn:ietf:params:xml:ns:host- 1.0"
   S:      xmlns:poll="urn:ietf:params:xml:ns:poll1.0"
   S:      xmlns:contact="urn:ietf:params:xml:ns:contact1.0"
   S:      xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   S:   <response>
   S:     <result code="1000">
   S:       <msg>Command completed successfully</msg>
   S:     </result>
   S:     <resData>
   S:     <domain:chkData>
   S:       <domain:cd>
   S:         <domain:name avail="true">abc123.ca</domain:name>
   S:       </domain:cd>
   S:       <domain:cd>
   S:         <domain:name avail="true">xyz987.ca</domain:name>
   S:       </domain:cd>
   S:       <domain:cd>
   S:         <domain:name avail="false">xn--r-wfan6a.ca</domain:name>
   S:         <domain:reason>Withheld</domain:reason>
   S:       </domain:cd>
   S:     </domain:chkData>
   S:   </resData>
   S:   <trID>
   S:     <clTRID>ABC-12346</clTRID>
   S:     <svTRID>CIRA-000000000312-0000000003</svTRID>
   S:   </trID>
   S: </response>
   S: </epp>

   This command returns successful completions responses as specified in
   [RFC5730] if no error occurred, usually with a code 1000.

   If the request is invalid, return code 2005 is used.  The error value
   is set to 8309 if the specified repertoire is invalid and to 8001 if
   the label contains invalid characters or cannot be converted.








Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 10]

Internet-Draft           CIRA IDN EPP Extension               March 2015


5.1.2.  EPP <info> Command

   The base CIRA IDN extension does not modify the EPP <info> command
   sent by the client.  In the case of a bundle command, a cira-idn-
   bundle-info object is added to the request.  The two cases are
   covered below.

5.1.2.1.  EPP <info> command for an IDN domain

   If the queried domain is an IDN domain in A-label format, the
   response is modified to include a ciraIdnInfo object containing all
   the valid label variants for the domain, including the base label.

   C: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   C:   <command>
   C:     <info>
   C:       <domain:info
             xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:         <domain:name hosts="all">xn--r-wfan6a.ca</domain:name>
   C:         <domain:authInfo>
   C:           <domain:pw>password</domain:pw>
   C:         </domain:authInfo>
   C:       </domain:info>
   C:     </info>
   C:     <clTRID>ABC-12345</clTRID>
   C:   </command>
   C: </epp>

   S: <?xml version="1.0" encoding="UTF-8"?>
   S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   S:   <response>
   S:     <result code="1000">
   S:       <msg>Command completed successfully</msg>
   S:     </result>
   S:     <resData>
   S:     <domain:infData
           xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   S:       <domain:name>xn--r-wfan6a.ca</domain:name>
   S:       <domain:roid>CIRA-lifecycle-00122</domain:roid>
   S:       <domain:status s="serverUpdateProhibited">
             change registrant
            </domain:status>
   S:       <domain:status s="serverDeleteProhibited" />
   S:       <domain:status s="serverRenewProhibited" />
   S:       <domain:status s="serverTransferProhibited" />
   S:       <domain:status s="serverHold" />
   S:       <domain:registrant>rant003</domain:registrant>



Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 11]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   S:       <domain:contact type="admin">admin003</domain:contact>
   S:       <domain:contact type="tech">tech003</domain:contact>
   S:       <domain:ns>
   S:          <domain:hostObj>ns1.example.ca</domain:hostObj>
   S:          <domain:hostObj>ns2.example.ca</domain:hostObj>
   S:       </domain:ns>
   S:       <domain:host>ns1.pc-case3.ca</domain:host>
   S:       <domain:host>ns2.pc-case3.ca</domain:host>
   S:       <domain:clID>rar600</domain:clID>
   S:       <domain:crID>rar600</domain:crID>
   S:       <domain:crDate>2012-12-08T16:25:01.0Z</domain:crDate>
   S:       <domain:exDate>2012-12-08T16:25:01.0Z</domain:exDate>
   S:       <domain:authInfo>
   S:         <domain:pw>password2</domain:pw>
   S:       </domain:authInfo>
   S:     </domain:infData>
   S:   </resData>
   S:   <extension>
   S:     <cira-idn:ciraIdnInfo
             xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-
   S:       <cira-idn:domainVariants>
   S:         <cira-idn:name>xn--r-wfan6a.ca</cira-idn:name>
   S:         <cira-idn:name>xn--cir-cla.ca</cira-idn:name>
   S:         <cira-idn:name>cira.ca</cira-idn:name>
   S:       </cira-idn:domainVariants>
   S:     </cira-idn:ciraIdnInfo>
   S:   </extension>
   S:     <trID>
   S:      <clTRID>ABC-12345</clTRID>
   S:      <svTRID>cira-000002-0000000005</svTRID>
   S:     </trID>
   S:   </response>
   S: </epp>

   This command returns successful completions responses as specified in
   [RFC5730] if no error occurred, usually with a code 1000.  [[C2:
   Error codes and error values to be completed. -- JFT]]

5.1.2.2.  EPP <info> command with a bundle object

   A client querying bundle information will include a cira-idn-
   bundle:info object in the request.  The server will reply with a
   bundle object.

   C: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   C: <command>
   C:   <info>



Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 12]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   C:     <cira-idn-bundle:info
   C:      xmlns:cira-idnbundle=
           "urn:ietf:params:xml:ns:cira-idn-bundle-1.0">
   C:       <cira-idn-bundle:name>
   C:         xn--valuation-93a.ca
   C:       </cira-idn-bundle:name>
   C:       <cira-idn-bundle:repertoire>fr</cira-idn-bundle:repertoire>
   C:     </cira-idn-bundle:info>
   C:   </info>
   C:   <clTRID>
   C:     ABC-12345
   C:   </clTRID>
   C: </command>
   C: </epp>

   S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   S:   <response>
   S:     <result code="1000">
   S:       <msg>Command completed successfully</msg>
   S:     </result>
   S:     <resData>
   S:       </resData>
   S:       <extension>
   S:       <cira-idn-bundle:infData
   S:           xmlns:cira-idn=
   S:           "urn:ietf:params:xml:ns:cira-idn-1.0"
   S:           xmlns:cira-idn-bundle=
   S:           "urn:ietf:params:xml:ns:cira-idn-bundle-1.0" >
   S:         <cira-idn-bundle:canonicalDomainName>
   S:           evaluation.ca
   S:         </cira-idn-bundle:canonicalDomainName>
   S:         <cira-idn-bundle:roid>CIRA-123</cira-idn-bundle:roid>
   S:         <cira-idn-bundle:clID>rar600</cira-idn-bundle:clID>
   S:         <cira-idn-bundle:registrant>
   S:           rant600
   S:         </cira-idn-bundle:registrant>
   S:         <cira-idn-bundle:crID>rar600</cira-idn-bundle:crID>
   S:         <cira-idn-bundle:crDate>
   S:           2012-12-08T16:25:01.0Z
   S:         </cira-idn-bundle:crDate>
   S:         <cira-idn-bundle:upID>rar600</cira-idn-bundle:upID>
   S:         <cira-idn-bundle:upDate>
   S:           2012-12-08T17:25:01.0Z
   S:         </cira-idn-bundle:upDate>
   S:         <cira-idn-bundle:bundleDomains>
   S:           <cira-idn:name>evaluation.ca</cira-idn:name>
   S:           <cira-idn:name>xn--valuation-93a.ca</cira-idn:name>
   S:           <cira-idn:name>xn--valution-2ya9f.ca</cira-idn:name>



Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 13]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   S:         </cira-idn-bundle:bundleDomains>
   S:       </cira-idn-bundle:infData>
   S:     </extension>
   S:     <trID>
   S:       <clTRID>ABC-12345</clTRID>
   S:       <svTRID>cira-000002-0000000005</svTRID>
   S:     </trID>
   S:   </response>
   S: </epp>

5.1.3.  EPP <poll> Command

   The EPP <poll> command is not modified by this extension.

5.1.4.  EPP <transfer> Command

   The transfer command is not modified by this extension.  The
   domain:name element may contain an IDN domain in A-label format.

5.2.  EPP Transform Commands

5.2.1.  EPP <create> Command

   The create command from the client is extended with a ciraIdnCreate
   object containing the repertoire information and the U-Label for the
   domain to create.  The server answer will contain the A-label of the
   created domain in the domain:name element.  The server answer is not
   modified by this extension except for return codes.

   Return code 8001 is returned by the server when the domain name
   contains invalid characters or when the A-label cannot be converted
   successfully to a valid U-label.  Error code 8309 is used for an
   invalid repertoire and 8310 is used when the A-label does not match
   the U-label.

   C: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
   C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   C:   <command>
   C:     <create>
   C:       <domain:create
   C:        xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   C:         <domain:name>xn--r-wfan6a.ca</domain:name>
   C:         <domain:period unit="y">2</domain:period>
   C:         <domain:ns>
   C:           <domain:hostObj>hostname.example.net</domain:hostObj>
   C:           <domain:hostObj>hostname.example.com</domain:hostObj>
   C:         </domain:ns>
   C:         <domain:registrant>contactid-1</domain:registrant>



Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 14]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   C:         <domain:contact type="admin">contactid-1</domain:contact>
   C:           <domain:contact type="tech">nbguy</domain:contact>
   C:           <domain:contact type="tech">nbtech</domain:contact>
   C:           <domain:contact type="tech">nbadmin</domain:contact>
   C:         <domain:authInfo>
   C:           <domain:pw>password</domain:pw>
   C:         </domain:authInfo>
   C:       </domain:create>
   C:     </create>
   C:     <extension>
   C:         <cira-idn:ciraIdnCreate
   C:          xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0">
   C:         <cira-idn:repertoire>fr</cira-idn:repertoire>
   C:         <cira-idn:u-label>cira.ca</cira-idn:u-label>
   C:       </cira-idn:ciraIdnCreate>
   C:     </extension>
   C:     <clTRID>ABC-12345</clTRID>
   C:   </command>
   C: </epp>

   S: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
   S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
   S:   <response>
   S:     <result code="1000">
   S:       <msg>Command completed successfully</msg>
   S:     </result>
   S:     <resData>
   S:       <domain:creData
   S:        xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
   S:         <domain:name>xn--r-wfan6a.ca</domain:name>
   S:         <domain:crDate>2012-08-27T17:52:21.0Z</domain:crDate>
   S:         <domain:exDate>2014-08-27T17:52:01.0Z</domain:exDate>
   S:       </domain:creData>
   S:     </resData>
   S:     <trID>
   S:       <clTRID>ABC-12345</clTRID>
   S:       <svTRID>CIRA-000001-0000000133</svTRID>
   S:     </trID>
   S:   </response>
   S: </epp>

5.2.2.  EPP <delete> Command

   The EPP <delete> command is not modified by this extension.







Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 15]

Internet-Draft           CIRA IDN EPP Extension               March 2015


5.2.3.  EPP <renew> Command

   The EPP <renew> command is not modified by this extension.

5.2.4.  EPP <transfer> Command

   The EPP <transfer> command is not modified by this extension.  The
   domain:name element may contain an IDN domain in A-label format.  New
   new error codes and error values may be returned based on IDN
   processing.

5.2.5.  EPP <update> Command

   The EPP <update> command is not modified by this extension.  The
   domain:name element may contain an IDN domain in A-label format.  New
   error codes and error values may be returned based on IDN processing.

   The server returns code 8001 when the domain name contains invalid
   characters or when the A-label cannot be converted successfully to a
   valid U-label.  Error code 8309 is used for an invalid repertoire and
   8317 is used when the request fails due to a syntax error or a policy
   violation error.

6.  Formal Syntax

   Below are the XML schemas for cira-idn-1.0 and cira-idn-bundle-1.0.
   These two schemas were developed separately and are almost
   independent of each other, except for the latter borrowing the
   domainList type of the former.

6.1.  Schema for cira-idn-1.0

   <?xml version="1.0" encoding="UTF-8"?>
   <schema targetNamespace="urn:ietf:params:xml:ns:cira-idn-1.0"
    xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0"
    xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
    xmlns="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified">

     <!--
      Import common element types.
     -->
     <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
             schemaLocation="eppcom-1.0.xsd" />

     <annotation>
       <documentation>
         Extensible Provisioning Protocol v1.0



Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 16]

Internet-Draft           CIRA IDN EPP Extension               March 2015


         extension schema for IDN domain name in the .CA registry
       </documentation>
     </annotation>

     <element name="ciraIdnCreate" type="cira-idn:createType" />
     <element name="ciraIdnInfo" type="cira-idn:infDataType" />
     <element name="ciraIdnCheck" type="cira-idn:checkType" />

     <!--
      Child elements of the <create> command.
      -->
     <complexType name="createType">
     <sequence>
       <element name="repertoire" type="cira-idn:repertoireType" />
       <element name="u-label" type="eppcom:labelType" minOccurs="0"/>
     </sequence>
     </complexType>

     <simpleType name="repertoireType">
       <restriction base="token">
         <length value="2"/>
       </restriction>
     </simpleType>

     <!--
      Child elements of the <info> command.
      -->

     <complexType name="infDataType">
       <sequence>
         <element name="domainVariants"
          type="cira-idn:domainList" minOccurs="0" />
       </sequence>
     </complexType>

     <complexType name="domainList">
       <sequence>
         <element name="name" type="eppcom:labelType
                  maxOccurs="unbounded" />
       </sequence>
     </complexType>

       <!--
       Child elements of the <check> command.
        -->

       <complexType name="checkType">
         <sequence>



Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 17]

Internet-Draft           CIRA IDN EPP Extension               March 2015


           <element name="repertoire" type="cira-idn:repertoireType" />
         </sequence>
       </complexType>

       <!--
       End of schema.
       -->
    </schema>


6.2.  Schema for cira-idn-bundle-1.0

   <?xml version="1.0" encoding="UTF-8"?>
     <schema
     targetNamespace="urn:ietf:params:xml:ns:cira-idn-bundle-1.0"
     xmlns:cira-idn-bundle="urn:ietf:params:xml:ns:cira-idn-bundle-1.0"
     xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
     xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0"
     xmlns="http://www.w3.org/2001/XMLSchema"
     elementFormDefault="qualified">

     <!--
      Import common element types.
      -->
     <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
             schemaLocation="eppcom-1.0.xsd" />
     <import namespace="urn:ietf:params:xml:ns:cira-idn-1.0"
             schemaLocation="cira-idn-1.0.xsd" />

     <annotation>
       <documentation>
         Extensible Provisioning Protocol v1.0
         bundle schema for framework for
         provisioning of cira idn bundle
         information.
       </documentation>
     </annotation>

     <!--
      Child elements found in EPP commands.
      -->
     <element name="info" type="cira-idn-bundle:infoType" />
       <!--
       Child elements of the <info> commands.
       -->

       <complexType name="infoType">
         <sequence>



Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 18]

Internet-Draft           CIRA IDN EPP Extension               March 2015


           <element name="name" type="eppcom:labelType" />
           <element name="repertoire"
            type="cira-idn:repertoireType" minOccurs="0"/>
         </sequence>
       </complexType>

       <!--
       Child response elements.
       -->
       <element name="infData" type="cira-idn-bundle:infDataType" />
       <!--
       <info> response elements.
       -->
       <complexType name="infDataType">
         <sequence>
           <element name="canonicalDomainName"
                    type="eppcom:labelType" />
           <element name="roid" type="eppcom:roidType" />
           <element name="clID" type="eppcom:clIDType"/>
           <element name="registrant" type="eppcom:clIDType"
                    minOccurs="0"/>
           <element name="crID" type="eppcom:clIDType"
                    minOccurs="0" />
           <element name="crDate" type="dateTime"
                minOccurs="0" />
           <element name="upID" type="eppcom:clIDType"
                minOccurs="0" />
           <element name="upDate" type="dateTime"
                minOccurs="0" />
           <element name="trDate" type="dateTime"
                minOccurs="0" />
           <element name="bundleDomains" type="cira-idn:domainList"/>
         </sequence>
       </complexType>
       <!--
       End of schema.
       -->
    </schema>

7.  Security Considerations

   For domain labels containing a large number of IDN characters, the
   list of label variants can be large.  For the French repertoire, the
   largest variant code point is from the e character and has 5 variants
   (including the base one).  For a label size of 64 characters, the
   list of label variants may reach up to 320 entries.  The current
   schema does not place a limit on the size of domainVariants element,
   but implementations may want limit its size for performance purpose.



Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 19]

Internet-Draft           CIRA IDN EPP Extension               March 2015


8.  IANA Considerations

   The CIRA IDN EPP extension is to be added to the EPP extension
   registry as specified in [RFC7451].  Below is the registration
   template.

   -----BEGIN FORM-----
   Name of Extension:
   "CIRA IDN EPP Extension"

   Document Status:
   Informational

   Reference:
   draft-wilcox-cira-idn-eppext

   Registrant Name and Email Address:
   .CA Registry Operations, regops@cira.ca

   TLDs: .ca

   IPR Disclosure: TBD

   Status: Active

   Notes: None
   -----END FORM-----

   [[C1: To be completed as needed. -- JFT]]

9.  Acknowledgments

   The authors would like to thank Marc Blanchet and Audric Schiltknecht
   for suggestions and revisions.

10.  References

10.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC5730]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
              STD 69, RFC 5730, August 2009.

   [RFC5731]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
              Domain Name Mapping", STD 69, RFC 5731, August 2009.




Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 20]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   [RFC5890]  Klensin, J., "Internationalized Domain Names for
              Applications (IDNA): Definitions and Document Framework",
              RFC 5890, August 2010.

   [RFC5891]  Klensin, J., "Internationalized Domain Names in
              Applications (IDNA): Protocol", RFC 5891, August 2010.

   [RFC5892]  Faltstrom, P., "The Unicode Code Points and
              Internationalized Domain Names for Applications (IDNA)",
              RFC 5892, August 2010.

10.2.  Informative References

   [RFC3743]  Konishi, K., Huang, K., Qian, H., and Y. Ko, "Joint
              Engineering Team (JET) Guidelines for Internationalized
              Domain Names (IDN) Registration and Administration for
              Chinese, Japanese, and Korean", RFC 3743, April 2004.

   [RFC4290]  Klensin, J., "Suggested Practices for Registration of
              Internationalized Domain Names (IDN)", RFC 4290, December
              2005.

   [RFC7451]  Hollenbeck, S., "Extension Registry for the Extensible
              Provisioning Protocol", RFC 7451, February 2015.

   [iana-idn-tables]
              "Repository of IDN Practices",
              <https://www.iana.org/domains/idn-tables>.

   [icann-idn-guidelines]
              "Guidelines For The Implementation Of Internationalized
              Domain Names", April 2007,
              <http://www.icann.org/en/topics/idn/
              idn-guidelines-26apr07.pdf>.

   [icann-epp-extentions]
              "Proprietary EPP Extensions", December 2012,
              <http://newgtlds.icann.org/en/applicants/advisories/
              epp-extensions-21dec12-en>.

   [ID.draft-davies-idntables]
              Davies, K. and A. Freytag, "Representing Label Generation
              Rulesets using XML", January 2015,
              <http://tools.ietf.org/html/draft-davies-idntables>.







Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 21]

Internet-Draft           CIRA IDN EPP Extension               March 2015


   [ID.draft-ietf-eppext-idnmap]
              Obispo, F. and L. Munoz, "Internationalized Domain Name
              Mapping Extension for the Extensible Provisioning Protocol
              (EPP)", January 2015,
              <http://tools.ietf.org/html/draft-ietf-eppext-idnmap>.

   [ID.draft-kong-eppext-bundling-registration]
              Kong, N., Yao, J., Li, X., Xie, J., and W. Tan,
              "Extensible Provisioning Protocol (EPP) Domain Name
              Mapping Extension for Bundling Registration", October
              2014, <http://tools.ietf.org/html/
              draft-kong-eppext-bundling-registration>.

Authors' Addresses

   Stuart Olmstead-Wilcox
   CIRA
   350 Sparks Street, Suite 306
   Ottawa, ON  K1R 7S8
   Canada

   Email: stuart.olmstead-wilcox@cira.ca


   Jacques Latour
   CIRA
   350 Sparks Street, Suite 306
   Ottawa, ON  K1R 7S8
   Canada

   Email: jacques.latour@cira.ca


   Jean-Francois Tremblay
   Viagenie

   Email: jean-francois.tremblay@viagenie.ca














Olmstead-Wilcox, et al. Expires September 7, 2015              [Page 22]