Re: [nfsv4] [FedFS] Empty fedfsNcePrefix attributes

James Lentini <jlentini@netapp.com> Thu, 15 July 2010 15:40 UTC

Return-Path: <jlentini@netapp.com>
X-Original-To: nfsv4@core3.amsl.com
Delivered-To: nfsv4@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4CA5B3A6998 for <nfsv4@core3.amsl.com>; Thu, 15 Jul 2010 08:40:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.547
X-Spam-Level:
X-Spam-Status: No, score=-5.547 tagged_above=-999 required=5 tests=[AWL=1.052, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p5TLovglw7BN for <nfsv4@core3.amsl.com>; Thu, 15 Jul 2010 08:40:02 -0700 (PDT)
Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by core3.amsl.com (Postfix) with ESMTP id 2F1A83A68D9 for <nfsv4@ietf.org>; Thu, 15 Jul 2010 08:40:02 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.55,209,1278313200"; d="scan'208";a="403612213"
Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 15 Jul 2010 08:40:11 -0700
Received: from jlentini-linux.hq.netapp.com (jlentini-linux.hq.netapp.com [10.97.16.21]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id o6FFeAaQ023543; Thu, 15 Jul 2010 08:40:11 -0700 (PDT)
Date: Thu, 15 Jul 2010 11:40:10 -0400
From: James Lentini <jlentini@netapp.com>
X-X-Sender: jlentini@jlentini-linux.nane.netapp.com
To: Chuck Lever <chuck.lever@oracle.com>
In-Reply-To: <4C3E4992.6010106@oracle.com>
Message-ID: <alpine.LFD.2.00.1007151037110.6034@jlentini-linux.nane.netapp.com>
References: <4C3E4992.6010106@oracle.com>
User-Agent: Alpine 2.00 (LFD 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="1628050704-416996779-1279205724=:6034"
Content-ID: <alpine.LFD.2.00.1007151127560.6034@jlentini-linux.nane.netapp.com>
Cc: nfsv4@ietf.org
Subject: Re: [nfsv4] [FedFS] Empty fedfsNcePrefix attributes
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 15 Jul 2010 15:40:10 -0000


On Wed, 14 Jul 2010, Chuck Lever wrote:

> Section 4.1 of the latest FedFS protocol draft:
> 
>   http://tools.ietf.org/html/draft-ietf-nfsv4-federated-fs-protocol-06
> 
> states that
> 
> > The naming context’s root entry MUST include the
> > fedfsNsdbContainerInfo (defined below) as one of its object
> > classes. The fedfsNsdbContainerInfo’s fedfsNcePrefix attribute
> > is used to locate the naming context’s NCE.
> 
> and that
> 
> > A fedfsNsdbContainerInfo’s fedfsNcePrefix attribute contains a
> > string. Prepending this string to the namingContext value produces
> > the Distinguished Name (DN) of the NSDB Container Entry. An empty
> > fedfsNcePrefix string value indicates that the NSDB Container Entry
> > is the namingContext’s root entry.
> 
> However, the fedfsNcePrefix attribute is defined thusly:
> 
> > 4.2.1.7.  fedfsNcePrefix
> >    A fedfsNcePrefix stores a UTF-8 encoded string.
> >    This attribute is single-valued.
> >    <CODE BEGINS>
> >            ///
> >            /// attributetype (
> >            ///     1.3.6.1.4.1.31103.1.7 NAME ’fedfsNcePrefix’
> >            ///     DESC ’NCE prefix’
> >            ///     SUP name
> >            ///     SINGLE-VALUE
> >            ///     )
> >            ///
> >    <CODE ENDS>
> >    OID 1.3.6.1.4.1.1466.115.121.1.12 is the DN syntax [RFC4517].
> 
> On my 389-ds server, "SUP name" is actually OID 121.1.15, not 121.1.12.

The last line of text is referring to the DN syntax, 
which is OID 1.3.6.1.4.1.1466.115.121.1.12. 

The intention was for the fedfsNcePrefix attribute to use the DN 
syntax, which felt like the appropriate syntax to use.

Unfortunately, it looks like I neglected to fully update the text to 
use the DN syntax, including the fedfsNcePrefix's LDAP schema 
definition as you've pointed out. I blame xml2rfc :)

The intention was to define the fedfsNcePrefix as follows:

attributetype (
    1.3.6.1.4.1.31103.1.7 NAME 'fedfsNcePrefix'
    DESC 'NCE prefix'
    EQUALITY distinguishedNameMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
    SINGLE-VALUE
    )

I believe this is a better definition as it constrains the contents of 
a fedfsNcePrefix to DNs, but I'd appreciate feedback from those with 
more LDAP expertise.

We'll correct this one way or the other in the next update. Thank you 
for spotting it.

> However it's defined, it appears that a string type attribute does not allow
> its value to be an empty string.  I have not found a way to insert a
> fedfsNcePrefix attribute with the value of an empty string into my 389-ds
> instance.  (admittedly I'm an amateur, but...)
> 
> I found this e-mail from November of 2002:
> 
>   http://www.openldap.org/lists/openldap-devel/200211/msg00059.html
> 
> wherein Kurt Zeilenga claims that a directory string can never be empty, and
> that OpenLDAP (unclear whether he is referring to the client library or the
> server) treats all strings as directory strings.
> 
> Is specifying an empty string value as the fedfsNcePrefix well supported by
> all known LDAP implementations?

The intention was to define the fedfsNcePrefix with the DN syntax 
which can contain an empty value (at least in my OpenLDAP config). 

-james