Subject: two-week review: registering formal "rdns" NID

From: "Ing-Wher (Helen) Chen" <[email-masked]>
Date: Tue, 9 Feb 2016 19:08:52 +0000

Hello,

Following the instructions in RFC 3406, here is the proposed template to register a formal NID: "rdns".

https://datatracker.ietf.org/doc/draft-chen-rdns-urn/

The "rdns" is meant to make it easier for organizations create YANG module XML namespace that identify their enterprise YANG modules.

Please see the following discussion on the netmod working group.

https://mailarchive.ietf.org/arch/msg/netmod/JQmD8yrUeuAwuHpBnqZV_mcuveU

Thanks,
Helen

---

From: [email-masked] (Dale R. Worley)
Date: Thu, 11 Feb 2016 15:10:43 -0500

Comments on draft-chen-rdns-urn-00:

I don't know how much this matters, but the owner of a domain name can
change over time.  This gave us some trouble when writing RFC 7462, and
eventually we gave up on using domain names as a basis for URNs.
There's a URN NID which I can't find right now which bases uniqueness on
domain names, but the URNs include a timestamp of creation.

The rule for lexical equivalence can't be implemented because there is
no algorithm for parsing an "rdns" URN into <reverse-dns> and <dss>, and
the lexical equivalence rule specifies that <reverse-dns> is
case-insensitive and <dss> is case-sensitive (as far as I can tell; you
should update the wording).

The nonterminal "revers-dns" is used in some places, and in other
places, "reverse-dns" is used.  I suggest cosistently using the latter.

I suggest consistently using <...> around nonterminal names.

The grammar of <reverse-dns> is implicitly given by the grammar of
domain names, but the grammar of <dss> is unspecified.  I suggest that
you add

    <dss> ::= 1*<URN chars>

Given that internationalized domain names are coming into use, you
should specify that <reverse-dns> is based on the A-label form [RFC
5890] for internationalized labels, i.e., the labels as turned into
ASCII by Punycode.

Dale

---

From: "Ing-Wher (Helen) Chen" <[email-masked]>
Date: Thu, 18 Feb 2016 18:48:06 +0000

Hi Dale,

Thanks for the review.  I uploaded revision -02 to address your comments. 

URL:       <https://www.ietf.org/internet-drafts/draft-chen-rdns-urn-02.txt>
Status:   <https://datatracker.ietf.org/doc/draft-chen-rdns-urn/>
Htmlized:       <https://tools.ietf.org/html/draft-chen-rdns-urn-02>
Diff:        <https://www.ietf.org/rfcdiff?url2=draft-chen-rdns-urn-02>

Please see below for my in-line responses.

> -----Original Message-----
> From: Dale R. Worley [mailto:[email-masked]]
> Sent: Thursday, February 11, 2016 3:11 PM
> To: Ing-Wher (Helen) Chen <[email-masked]>
> Cc: [email-masked]
> Subject: Re: two-week review: registering formal "rdns" NID
> 

[Helen]  Just a note that at the time that I submitted to
               [email-masked] for review, the latest version was -01.

> domain names, but the URNs include a timestamp of creation.

[Helen]  I added a new paragraph to about this in the section on
               "Identifier persistence considerations".  "rdns" URNs are only
               Meaningful within a managed device that installs YANG modules
               using "rdns" URNs, and so collisions due to domain name ownership
               changes are expected to be caught.  Furthermore, it is unlikely that
               changing domain name ownerships will result a problem caused by
               a single device installing modules to have identical "rdns" URNS,
               because this would require that the device install a new YANG
               module from the new owner of a domain name and also install the
               stale YANG module from the old owner of the domain name.  It is
               more likely that a device continues to install two stale YANG
               modules with two "rdns" URN  that don't collide.

> 
> The rule for lexical equivalence can't be implemented because there is no
> algorithm for parsing an "rdns" URN into <reverse-dns> and <dss>, and the
> lexical equivalence rule specifies that <reverse-dns> is case-insensitive and
> <dss> is case-sensitive (as far as I can tell; you should update the wording).

[Helen]  I updated the section on "Rules for Lexical Equivalence".  On second
               thought, because "rdns" URNs are meant to be XML namespaces of
               enterprise YANG modules, I think the rules for lexical equivalence for
               "rdns" URNs should be as defined for those of XML namespaces.

> 
> The nonterminal "revers-dns" is used in some places, and in other places,
> "reverse-dns" is used.  I suggest cosistently using the latter.
> 

[Helen]  Fixed.  They should all read "reverse-dns".

> I suggest consistently using <...> around nonterminal names.

[Helen]  Fixed.

> The grammar of <reverse-dns> is implicitly given by the grammar of domain
> names, but the grammar of <dss> is unspecified.  I suggest that you add
> 
>     <dss> ::= 1*<URN chars>

[Helen]  Added to the section on "Declaration of syntactic structure".

>
> Given that internationalized domain names are coming into use, you should
> specify that <reverse-dns> is based on the A-label form [RFC 5890] for
> internationalized labels, i.e., the labels as turned into ASCII by Punycode.

[Helen]  Added to "Declaration of syntactic structure" paragraph 2 and
               "Relevant ancillary documentation".

Thanks,
Helen

---

From: [email-masked] (Dale R. Worley)
Date: Fri, 19 Feb 2016 15:41:21 -0500

Comments on draft-chen-rdns-urn-02:

>                [email-masked] for review, the latest version was -01.

I should have noticed that!

I think your changes take care of the problems that I've noticed.

>                thought, because "rdns" URNs are meant to be XML
>                namespaces of enterprise YANG modules, I think the
>                rules for lexical equivalence for "rdns" URNs should be
>                as defined for those of XML namespaces.

There might be a problem, as RFC 2141 prescribes that "urn" and the NID
("rdns") are case-insensitive, whereas the draft prescribes that all of
the URN is to be compared case-sensitively.  Looking at RFC 3406, the
definition of the NID registration template, Appendix B.1 gives an
example:

   Rules for Lexical Equivalence:

      FQDNs are case-insensitive.  Thus, the portion of the URN

                  urn:<assigned number>:<FQDN>:

      is case-insensitive for matches.  The remainder of the identifier
      must be considered case-sensitive.

The syntax for rdns URNs is

       "rdns" URN    ::= urn:rdns:<reverse-dns>:<dss>
       <reverse-dns> ::= registered domain name in reverse, each label
                         separated by a colon (":")
       <dss>         ::= 1*<URN chars>

I think we are constrained to require (for URN comparison) that "urn"
and "rdns" be case-insensitive, whereas you can specify whatever rule
you want for the reverse-dns and dss parts.

But perhaps other people on this list have more knowledge of how this
issue has been handled for other URN namespaces.

Dale

---

From: Martin J. Dürst <[email-masked]>
Date: Sat, 20 Feb 2016 13:08:37 +0900

Hello Dale, Helen, others,

Indeed as Dale says, the "urn" and "rdns" components are 
case-insensitive, and a namespace registration cannot change that.

Regards,   Martin.

On 2016/02/20 05:41, Dale R. Worley wrote:
> .

---

From: "Ing-Wher (Helen) Chen" <[email-masked]>
Date: Mon, 22 Feb 2016 22:37:40 +0000

Hi Martin and Dale,

Thanks for pointing out that "urn:rdns" should be case insensitive.
I've updated the section on "Rules for Lexical Equivalent".

URL:            https://www.ietf.org/internet-drafts/draft-chen-rdns-urn-03.txt
Status:         https://datatracker.ietf.org/doc/draft-chen-rdns-urn/
Htmlized:       https://tools.ietf.org/html/draft-chen-rdns-urn-03
Diff:           https://www.ietf.org/rfcdiff?url2=draft-chen-rdns-urn-03

Thanks,
Helen

> From: Martin J. Dürst [mailto:[email-masked]]
> Sent: Friday, February 19, 2016 11:09 PM
> To: Dale R. Worley <[email-masked]>; Ing-Wher (Helen) Chen
> <[email-masked]>
> Indeed as Dale says, the "urn" and "rdns" components are case-insensitive,
> and a namespace registration cannot change that.
> 
> Regards,   Martin.
> 
> >>> The rule for lexical equivalence can't be implemented because there
> >>> is no algorithm for parsing an "rdns" URN into <reverse-dns> and
> >>> <dss>, and the lexical equivalence rule specifies that <reverse-dns>
> >>> is case-insensitive and <dss> is case-sensitive (as far as I can tell; you
> > ("rdns") are case-insensitive, whereas the draft prescribes that all
> > of the URN is to be compared case-sensitively.  Looking at RFC 3406,
> > the definition of the NID registration template, Appendix B.1 gives an
> > example:
> >