[AFS3-std] Re: [OpenAFS-devel] openafs rxk5 - AFS_RXK5_DEFAULT

Matt Benjamin matt@linuxbox.com
Tue, 20 Feb 2007 19:12:47 -0500


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Jeffrey Hutzelman wrote:

> I don't recall the conversation specifically, but there certainly is an
> established consensus that we should be adding get-capabilities ops to
> each interface.  Such an interface would return a bitmask of supported
> capabilities, similar to the ones we already have in some of the RPC
> interfaces.  Forgive me for not going back and looking at your patch to
> see if this is what you ended up defining.

What Marcus and I defined is, apparently, not a capabilities interface.
 Rather, it is a properties interface.  Rather than a bitmask, our
implementation is a dynamic string table.  The 'get' interface takes a
key, which may include wildcards, and may return values for multiple
keys.  In our code that uses this interface, we created the convention
of defining keys of the form <subsystem name>.<keyname>, so we have
'rxk5.enctypes'.  Although we did not initially implement a
corresponding set interface, we have been thinking that it could be
useful to have one, although we haven't (at least together) thought out
all the implications (ie, per-user vs. system-wide properties).  This
sort of interface would, I think, reduce the need for new get/set pioctl
interfaces for this that and the other.

> 
> Given that the number of supported token types is small, I don't see a
> problem with allocating a capability bit for each one; this is probably
> a better approach than using a separate pioctl.
> 
> Capabilities really don't address the lock thing, though.  The
> capabilities interface is intended to advertise what an interface
> provider is willing and/or able to support; they are read-only by
> nature.  They're also something that should behave consistently across
> implementations.  By contrast, the locking thing is really a
> configuration option for the OpenAFS cache manager; it needs both read
> and write, and is implementation specific.
> 
> So, I think we're talking about three pioctl's here:
> - get capabilities
> - get OpenAFS CM feature bits
> - set OpenAFS CM feature bits
> 
> The first belongs in the 'C' space, and there needs to be a registry for
> the capabilitiy bits themselves.  We're already doing this for some of
> the other interfaces, though the web pages don't yet exist for all of
> the registries.
> 
> I think the other two belong in 'O', since they really are specific to
> OpenAFS.
> 
> 
> I also think that neither of these interfaces covers the question of
> supported enctypes.  

Agreed.

> An aklog or equivalent program obtaining either
> rxk5 or rxgk tokens needs to know what enctypes are supported by the
> cache manager, in order to avoid getting a useless ticket.  My document
> on rxgk client integration indicates the need for such an interface but
> doesn't define one; I don't recall seeing one in your patch, either. 

It's there, although early versions of the patch didn't use it.  I think
we are now.

> You might argue that supported enctypes are capabilities, but I'd rather
> not treat them that way.  There is already an IANA registry of
> RFC3961/Kerberos enctypes, and I'd rather not have a requirement to
> designate a capability bit for every enctype before it can be used.
> 

We did not consider enctypes to be capability bits (see above), but
rather, we used an ascii representation of the integer number
corresponding to the enctype in the k5 specification.

> 
> 
>> As for pioctls, we'll happily send a request to
>> registrar@grand.central.org for the ones we actually require.  I would
>> ask, however, whether you really plan to issue an official pioctl, in
>> any range, for code that is unlikely to see wide or long-term use?  Is
>> it possible that there should be an X ('experimental') ioctl range for
>> this sort of work?
> 
> I allocated numbers for VIOCGETTOK2 and VIOCSETTOK2, but the details of
> these interfaces are still open for discussion.  I don't believe anyone
> has yet implemented the interfaces described on the afsig.se page, but
> if anyone has, they certainly know that they are subject to change.

Ok, thanks.

> I'll be happy to allocate a number for a get-capabilities bit, if you
> want to send a request in.  Feel free to CC me to get it quicker
> attention, as I don't wade through the spam there very often.  But I
> always ask that you actually send the request in to the registar
> address, because I use that queue as part of my recordkeeping.

Marcus or I will do this shortly.

> As for experimental use, the 'V' 240-247 codes are available for site
> specific use in both the ioctl and pioctl spaces; these should be usable
> for experimentation.  There is also an implementation-specific range at
> 'V'248-255, which may be appropriate for some experimentation (but be
> careful - OpenAFS doesn't use these codes, but other implementations
> might).

Ah.  Perfect.

> 
> The various lists of assigned codes can be found at
> <http://grand.central.org/numbers/>.  Be aware that they sometimes get
> stale, so don't assume a number is available just because it's not listed.
> 
> -- Jeff
> _______________________________________________
> OpenAFS-devel mailing list
> OpenAFS-devel@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-devel




- --

Matt Benjamin

The Linux Box
206 South Fifth Ave. Suite 150
Ann Arbor, MI  48104

http://linuxbox.com

tel. 734-761-4689
fax. 734-769-8938
cel. 734-216-5309

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFF245/JiSUUSaRdSURCACXAJ9WHfBioupwBqK2c1+IwMY6cl/R3gCdH2Gl
jl5OmloA+KT9h/zjr8bdYQ8=
=CNrJ
-----END PGP SIGNATURE-----