Subject: supportedControl and recognized controls

From: "MIRCEA PANA" <[email-masked]>
Date: Mon, 08 Nov 1999 17:29:28 -0500

In RFC2251, section "4.1.12 Controls", last paragraph specifies:
"Servers list the controls which they recognize in the supportedControl
attribute in the root DSE"

How should this be interpreted?
Option 1: "Servers SHOULD list all the controls which they recognize in
the supportedControl attribute in the root DSE"
Option 2: "Servers MAY list (some of the) controls which they recognize
in the supportedControl attribute in the root DSE".

The same question goes for RFC2252, section "5.2.4 supportedControl"
which specifies: "The values of this attribute are the OBJECT
IDENTIFIERs identifying controls which the server supports. If the
server does not support any controls, this attribute will be absent."
Should this read: "... identifying all the controls which the server
supports."
or should it read: "... identifying (some of the) controls which the
server supports."

Or put it this way:
How should a client deal with extensions?
Option A: The client should search the root DSE to find out if a
specific control is supported. If not in the "supportedControl" list of
OID.s, then the client should not attempt to use the control.
Option B: The client should ignore the root DSE's "supportedControl"
list of OID.s and attempt to use the control any way. The server should
then perform according to the specifications of RFC2251, section 4.1.12.

Any thoughts or suggestions?
Thanks,
Mircea.

---

From: "MIRCEA PANA" <[email-masked]>
Date: Wed, 10 Nov 1999 13:42:43 -0500

Does anybody has a suggestion or opinion with regards to this issue (see
below)? If the posting of such things on LDAPEXT is inappropriate, please
excuse me. Is there a more appropriate discussion list for this?

Thanks,

Mircea.

MIRCEA PANA wrote:

In RFC2251, section "4.1.12 Controls", last paragraph
specifies:

Option 1: "Servers SHOULD list all the controls which they recognize
in

supports."

server supports."

Or put it this way:

specific control is supported. If not in the "supportedControl" list
of

Thanks,

Mircea.

---

From: [email-masked] (Mark C Smith)
Date: Wed, 17 Nov 1999 11:23:38 -0500

> in the supportedControl attribute in the root DSE".

My opinion is that Option 1 makes the most sense, i.e., this should be a
SHOULD.

> or should it read: "... identifying (some of the) controls which the

I vote for "all."

> then perform according to the specifications of RFC2251, section 4.1.12.

I think either approach is valid for clients (try to use a control and
handle failures OR check the rootDSE before trying to use a control). 
Note that some controls may be supported only on certain parts of the
DIT anyway due to chaining or other "backend" restrictions.

-- 
Mark Smith
iPlanet Directory Architect / Sun-Netscape Alliance
My words are my own, not my employer's.   Got LDAP?

---

From: "MIRCEA PANA" <[email-masked]>
Date: Wed, 17 Nov 1999 16:53:42 -0500

1. It may be good to include the "SHOULD" and "all" in the next revision
of RFC2251/2252 it that is OK for everybody.

2. Because of backend restrictions, clients have to handle the unsupportedCriticalExtension
any way. Then, why have supportedControls it in the root DSE? Are the root
DSE supportedControls a way to tell clients "don't even think about it
:=)" ?

Thanks,

Mircea.

Mark C Smith wrote:

MIRCEA PANA wrote:

in

> in the supportedControl attribute in the root DSE".

My opinion is that Option 1 makes the most sense, i.e., this should
be a

SHOULD.

I vote for "all."

of

--

Mark Smith

---

From: [email-masked] (Mark C Smith)
Date: Wed, 17 Nov 1999 17:11:35 -0500

MIRCEA PANA wrote:
> 
> 1. It may be good to include the "SHOULD" and "all" in the next
> revision of RFC2251/2252 it that is OK for everybody.

Agreed.  Any comments from the 2251 authors?

> 2. Because of backend restrictions, clients have to handle the
> unsupportedCriticalExtension any way. Then, why have supportedControls
> it in the root DSE? Are the root DSE supportedControls a way to tell
> clients "don't even think about it :=)" ?

I think so, yes.  One could imagine inventing a more sophisticated
scheme for advertising what controls can be used (e.g., on a per subtree
basis like is done for schema) -- but such a scheme would be complicated
and perhaps hard to specify.  The fact that some controls are only
supported in certain parts of the tree is likely to very
implementation/deployment specific.

---

From: Mark Wahl <[email-masked]>
Date: Thu, 18 Nov 1999 23:56:53 -0600

> of RFC2251/2252 it that is OK for everybody.

In a standards track RFC everything is mandatory unless labeled optional or 
deployer's choice with a SHOULD or MAY.  I haven't seen cases where there is
a good reason to NOT include a control in supportedControls.

> unsupportedCriticalExtension any way. Then, why have supportedControls it 
> in the root DSE? Are the root DSE supportedControls a way to tell clients 
> "don't even think about it :=)" ?

There is a similar case in SMTP, where a server advertises its capabilities.
It is very useful for debugging a mixed deployment of servers, where the 
management tool can easily compare the server's capabilities against what 
the clients expect.  Furthermore if the control is marked non critical the 
client would not be able to tell if the server supported it or not without
the supportedControls information.

Mark Wahl, Directory Product Architect
Innosoft International, Inc.