Subject: [nfsv4] [PATCH 0/5] NSDB protocol draft clean-ups

From: Chuck Lever <[email-masked]>
Date: Tue, 28 Aug 2012 15:28:47 -0700

NSDB protocol draft issues noted while working on open issue NSDB-5.
When these are merged, I'll post the larger fixes.

---

Chuck Lever (5):
      Document FSN annotation and description attributes
      Explain why NsdbName appears in descriptions of FSN and FSL
      Commit a688de0a mistook the term "NSDB service" for "NSDB node."
      Label some OIDs as deprecated
      Squelch xmllint complaint

 nsdb-proto.xml |  113 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 103 insertions(+), 10 deletions(-)

-- 
Chuck Lever

---

From: Chuck Lever <[email-masked]>
Date: Tue, 28 Aug 2012 15:29:05 -0700

nsdb-proto_autogen.xml:2761: parser error : xmlParseEntityRef: no name
   <t hangText="Person & email address to contact for further information:"
---

 nsdb-proto.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/nsdb-proto.xml b/nsdb-proto.xml
index 465555d..110678c 100644
--- a/nsdb-proto.xml
+++ b/nsdb-proto.xml
@@ -2752,7 +2752,7 @@
     <t>
         <list style="hanging">
         <t hangText="Subject:"> Request for LDAP Descriptor Registration </t>
-        <t hangText="Person & email address to contact for further information:">
+        <t hangText="Person &amp; email address to contact for further information:">
             See "Author/Change Controller" </t>
         <t hangText="Specification:"> draft-ietf-nfsv4-federated-fs-protocol </t>
         <t hangText="Author/Change Controller:"> [document authors] </t>

---

From: Chuck Lever <[email-masked]>
Date: Tue, 28 Aug 2012 15:29:27 -0700

We should avoid renumbering the OID namespace, as that could create
backwards compatilibity issues with existing NSDBs.  Fill in recently
introduced gaps in the FedFS OID namespace by adding back table rows
for the removed OIDs, and mark them deprecated.

For the new fedfsNceDN attribute, move it to a fresh OID, restore
the fedfsNcePrefix attribute in the OID namespace table, and mark
it deprecated.
---

 nsdb-proto.xml |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 58 insertions(+), 4 deletions(-)

diff --git a/nsdb-proto.xml b/nsdb-proto.xml
index 110678c..cfbf48d 100644
--- a/nsdb-proto.xml
+++ b/nsdb-proto.xml
@@ -1073,7 +1073,7 @@
             <figure><artwork><![CDATA[
         ///
         /// attributetype (
-        ///     1.3.6.1.4.1.31103.1.7 NAME 'fedfsNceDN'
+        ///     1.3.6.1.4.1.31103.1.14 NAME 'fedfsNceDN'
         ///     DESC 'NCE Distinguished Name'
         ///     EQUALITY distinguishedNameMatch
         ///     SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
@@ -2706,17 +2706,23 @@
         <ttcol align='left' >Description</ttcol>
         <ttcol align='left' >Reference</ttcol>
 
+        <c> 1.3.6.1.4.1.31103.1.1    </c> <c> fedfsUuid               </c> <c> deprecated </c>
         <c> 1.3.6.1.4.1.31103.1.2    </c> <c> fedfsNetAddr            </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.3    </c> <c> fedfsNetPort            </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.4    </c> <c> fedfsFsnUuid            </c> <c> RFC-TBD1 </c>
-        <c> 1.3.6.1.4.1.31103.1.7    </c> <c> fedfsNceDN              </c> <c> RFC-TBD1 </c>
+        <c> 1.3.6.1.4.1.31103.1.5    </c> <c> fedfsNsdbName           </c> <c> deprecated </c>
+        <c> 1.3.6.1.4.1.31103.1.6    </c> <c> fedfsNsdbPort           </c> <c> deprecated </c>
+        <c> 1.3.6.1.4.1.31103.1.7    </c> <c> fedfsNcePrefix          </c> <c> deprecated </c>
         <c> 1.3.6.1.4.1.31103.1.8    </c> <c> fedfsFslUuid            </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.9    </c> <c> fedfsFslHost            </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.10   </c> <c> fedfsFslPort            </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.11   </c> <c> fedfsFslTTL             </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.12   </c> <c> fedfsAnnotation         </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.13   </c> <c> fedfsDescr              </c> <c> RFC-TBD1 </c>
+        <c> 1.3.6.1.4.1.31103.1.14   </c> <c> fedfsNceDN              </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.100  </c> <c> fedfsNfsPath            </c> <c> RFC-TBD1 </c>
+        <c> 1.3.6.1.4.1.31103.1.101  </c> <c> fedfsNfsMajorVer        </c> <c> deprecated </c>
+        <c> 1.3.6.1.4.1.31103.1.102  </c> <c> fedfsNfsMinorVer        </c> <c> deprecated </c>
         <c> 1.3.6.1.4.1.31103.1.103  </c> <c> fedfsNfsCurrency        </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.104  </c> <c> fedfsNfsGenFlagWritable </c> <c> RFC-TBD1 </c>
         <c> 1.3.6.1.4.1.31103.1.105  </c> <c> fedfsNfsGenFlagGoing    </c> <c> RFC-TBD1 </c>
@@ -2761,6 +2767,14 @@
 
     <t>
         <list style="hanging">
+        <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.1 </t>
+        <t hangText="Descriptor (short name):"> fedfsUuid </t>
+        <t hangText="Usage:"> attribute type, deprecated </t>
+        </list>
+    </t>
+
+    <t>
+        <list style="hanging">
         <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.2 </t>
         <t hangText="Descriptor (short name):"> fedfsNetAddr </t>
         <t hangText="Usage:"> attribute type </t>
@@ -2785,9 +2799,25 @@
 
     <t>
         <list style="hanging">
+        <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.5 </t>
+        <t hangText="Descriptor (short name):"> fedfsNsdbName </t>
+        <t hangText="Usage:"> attribute type, deprecated </t>
+        </list>
+    </t>
+
+    <t>
+        <list style="hanging">
+        <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.6 </t>
+        <t hangText="Descriptor (short name):"> fedfsNsdbPort </t>
+        <t hangText="Usage:"> attribute type, deprecated </t>
+        </list>
+    </t>
+
+    <t>
+        <list style="hanging">
         <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.7 </t>
-        <t hangText="Descriptor (short name):"> fedfsNceDN </t>
-        <t hangText="Usage:"> attribute type </t>
+        <t hangText="Descriptor (short name):"> fedfsNcePrefix </t>
+        <t hangText="Usage:"> attribute type, deprecated </t>
         </list>
     </t>
 
@@ -2841,6 +2871,14 @@
 
     <t>
         <list style="hanging">
+        <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.14 </t>
+        <t hangText="Descriptor (short name):"> fedfsNceDN </t>
+        <t hangText="Usage:"> attribute type </t>
+        </list>
+    </t>
+
+    <t>
+        <list style="hanging">
         <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.100 </t>
         <t hangText="Descriptor (short name):"> fedfsNfsPath </t>
         <t hangText="Usage:"> attribute type </t>
@@ -2849,6 +2887,22 @@
 
     <t>
         <list style="hanging">
+        <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.101 </t>
+        <t hangText="Descriptor (short name):"> fedfsNfsMajorVer </t>
+        <t hangText="Usage:"> attribute type, deprecated </t>
+        </list>
+    </t>
+
+    <t>
+        <list style="hanging">
+        <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.102 </t>
+        <t hangText="Descriptor (short name):"> fedfsNfsMinorVer </t>
+        <t hangText="Usage:"> attribute type, deprecated </t>
+        </list>
+    </t>
+
+    <t>
+        <list style="hanging">
         <t hangText="Object Identifier:"> 1.3.6.1.4.1.31103.1.103 </t>
         <t hangText="Descriptor (short name):"> fedfsNfsCurrency </t>
         <t hangText="Usage:"> attribute type </t>

---

From: Chuck Lever <[email-masked]>
Date: Tue, 28 Aug 2012 15:29:47 -0700

---

 nsdb-proto.xml |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/nsdb-proto.xml b/nsdb-proto.xml
index cfbf48d..8611c73 100644
--- a/nsdb-proto.xml
+++ b/nsdb-proto.xml
@@ -513,8 +513,8 @@
         data (see <xref target="fedfsfsn"/>).  </t>
 
         <t> Because junctions store a tuple containing an FSN UUID and
-        the name and port of an NSDB service, an FSN UUID must be unique
-        only on a single NSDB service.  The probability of two FSN
+        the name and port of an NSDB node, an FSN UUID must be unique
+        only on a single NSDB node.  The probability of two FSN
         records sharing the same UUID on a single NSDB host is zero,
         due to the way FSN distinguished names are formed.  An FSN
         UUID collision can be detected immediately when an
@@ -533,7 +533,7 @@
         <xref target="nsdb-ops-fileservers"/> as an unauthenticated user.
         Thus distinguished names of FSN and FSL records, as well as
         the FSN and FSL records themselves, are required to be readable
-        by anyone who can bind anonymously to an NSDB service.  Therefore
+        by anyone who can bind anonymously to an NSDB node.  Therefore
         FSN and FSL UUIDs should be considered public information.  </t>
 
         <t> Version 1 UUIDs contain a host's MAC address and a time stamp

---

From: Chuck Lever <[email-masked]>
Date: Tue, 28 Aug 2012 15:30:03 -0700

Commit 6bc484bf removed the fedfsNsdbName and fedfsNsdbPort
attributes.  Since the NsdbName is no longer stored in actual LDAP
records, we should explain why it is not in the object classes.
---

 nsdb-proto.xml |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/nsdb-proto.xml b/nsdb-proto.xml
index 8611c73..d760564 100644
--- a/nsdb-proto.xml
+++ b/nsdb-proto.xml
@@ -196,7 +196,7 @@
         After an FSN is created, it is associated with one or more
         fileset locations (FSLs) on a fileserver. </t>
 
-        <t> The attributes of an FSN are: </t>
+        <t> An FSN consists of: </t>
 
 <!--NOTE: hangIndent is set to 6 and hanging text has 3 space prefix to -->
 <!--      set the list off from the body text.                          -->
@@ -215,6 +215,12 @@
         </list>
         </t>
 
+        <t> The FsnUuid is a required attribute of an FSN
+        record, but the NsdbName is not stored as an attribute
+        of the record.  The NsdbName is obvious to NSDB clients,
+        and is indeed authenticated in cases where TLS security
+        is in effect. </t>
+
     </section>
 
     <section title="Fileset Location (FSL)">
@@ -226,7 +232,7 @@
         to access its data. An FSL's attributes can be used by a fileserver
         to decide which locations it will return to a client. </t>
 
-        <t> All FSLs have the following attributes: </t>
+        <t> An FSL consists of: </t>
 
 <!--NOTE: hangIndent is set to 6 and hanging text has 3 space prefix to -->
 <!--      set the list off from the body text.                          -->
@@ -263,6 +269,9 @@
         </list>
         </t>
 
+        <t> The NsdbName is not stored as an attribute of an FSL
+        record for the same reason it is not stored in FSN records. </t>
+
         <t> This document defines an FSL subtype for NFS. An NFS FSL
         contains information suitable for use in an NFSv4
         fs_locations <xref target="3530bis"/> or NFSv4.1

---

From: Chuck Lever <[email-masked]>
Date: Tue, 28 Aug 2012 15:30:19 -0700

The textual description of an FSL has a paragraph each for the
Annotation and Description attributes.  The textual description
of an FSN does not, even though an FSN can have these attributes.

It's also incorrect to say that "All FSLs have" annotations and
descriptions, when these are specified later in the draft as
_optional_ attributes.

Add appropriate descriptions for these attributes to the FSN
section.  Make the FSL description list these attributes as
optional.

I'm trying to distinguish carefully between the Fileset Name concept
and an "FSN record" which is how an FSN is represented in LDAP, as
the exact contents of the two are diverging.  Likewise for FSLs.
---

 nsdb-proto.xml |   36 +++++++++++++++++++++++++++++++++---
 1 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/nsdb-proto.xml b/nsdb-proto.xml
index d760564..70022d4 100644
--- a/nsdb-proto.xml
+++ b/nsdb-proto.xml
@@ -221,6 +221,26 @@
         and is indeed authenticated in cases where TLS security
         is in effect. </t>
 
+        <t> An FSN record may also contain: </t>
+
+<!--NOTE: hangIndent is set to 6 and hanging text has 3 space prefix to -->
+<!--      set the list off from the body text.                          -->
+        <t>
+        <list style="hanging" hangIndent="6">
+
+            <t hangText="   Annotations:"> optional name/value pairs
+            that can be interpreted by a fileserver. The semantics
+            of this field are not defined by this document. These
+            tuples are intended to be used by higher-level
+            protocols. </t>
+
+            <t hangText="   Descriptions:"> optional text
+            descriptions. The semantics of this field are
+            not defined by this document. </t>
+
+        </list>
+        </t>
+
     </section>
 
     <section title="Fileset Location (FSL)">
@@ -256,6 +276,19 @@
             <t hangText="   FslTTL:"> the time in seconds during
             which the FSL may be cached </t>
 
+        </list>
+        </t>
+
+        <t> The NsdbName is not stored as an attribute of an FSL
+        record for the same reason it is not stored in FSN records. </t>
+
+        <t> An FSL record may also contain: </t>
+
+<!--NOTE: hangIndent is set to 6 and hanging text has 3 space prefix to -->
+<!--      set the list off from the body text.                          -->
+        <t>
+        <list style="hanging" hangIndent="6">
+
             <t hangText="   Annotations:"> optional name/value pairs
             that can be interpreted by a fileserver. The semantics
             of this field are not defined by this document. These
@@ -269,9 +302,6 @@
         </list>
         </t>
 
-        <t> The NsdbName is not stored as an attribute of an FSL
-        record for the same reason it is not stored in FSN records. </t>
-
         <t> This document defines an FSL subtype for NFS. An NFS FSL
         contains information suitable for use in an NFSv4
         fs_locations <xref target="3530bis"/> or NFSv4.1