[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Protocol: control specifications.
Kurt D. Zeilenga writes:
>At 11:11 AM 1/8/2004, Hallvard B Furuseth wrote:
>>Kurt D. Zeilenga writes:
>>> As I previously suggested:
>>>> Consider the need to update a specification from "clients MUST provide
>>>> criticality field of TRUE" to "clients SHOULD provide criticality field
>>>> of TRUE". Such a change could not be made if we require servers to
>>>> error where the criticality is not TRUE.
>>
>>Oops. I notice I forgot to answer that:
>>
>>In terms of the current definition of criticality, this gives the
>>control different semantics.
>
> By current, do you mean RFC 2251 or [Protocol].
I mean RFC 2251. It says the definition of a control includes:
- whether the control is always noncritical, always critical, or
critical at the client's option,
To my eyes, this means that setting the control wrong is a user
error. Good quality servers SHOULD reject such user errors, except
when that gets too hairy or cumbersome to implement.
I can see that you can instead interpret that wording alone as 'the
value of the criticality is as specified regardless of what is sent
over the protocol', but a few paragraphs above the RFC describes how
the server must act on the criticality _field_. The 'field' refers
clearly to the criticality protocol element.
BTW, I note Jim has updated the text I quoted from rfc2251 to match
that.
> [Protocol] is
> certainly specifying different criticality semantics than RFC 2251.
> I argue that the change is inappropriate and problematic.
Well, we too argue for changes from RFC 2251, which the other of us
considers problematic...
> Anyways, when we say 'control semantics', there two portions:
> that defined by the "core" protocol specification and that
> defined by the extension specification (which are associated
> with the the controlType and associated controlValue). We
> call this extension specification the "control specification".
> That might be part of the problem.
>
> The extension specification should not overload or otherwise
> alter the criticality semantics specified by "core" protocol
> specification.
Yes, I said I agree. My original suggestion - which Jim adopted -
was bad, and so was my compromise suggestion. So in the protocol-20
description of a control specification:
- whether the criticality field should be always set to TRUE, always
set to FALSE, or sender's choice,
I agree completely that far (and want to go further), but the
following should be deleted:
and server behavior when
constraints of this nature are violated,
>>If there is a need to change this, then
>>the semantics of the control as currently defined is flawed. One should
>>define a new and correct control instead, just as one should usually do
>>instead of changing the semantics of a control in any other major way.
>
> Any decisions regarding versioning should considered as part
> of whatever process of which the technical specification is
> being maintained under. Note our standards process certainly
> allows changes, even major ones, to be made without versioning
> changes (if that is deemed appropriate by the community).
> I believe it is quite common practice to defer such decisions
> to the community most effected by the change and to a time
> in which the (extension) specification is being revised.
Well, true. I should have said, one should _normally_ define a new
control. A major change in semantics is usually a bad idea, and
should be considered very carefully.
> I can certainly thing of cases where such a change would be
> quite appropriate, for example, where the change is due more
> to applicability of the extension than to alter the semantics
> of the controlType and associated controlValue.
My point here is that a change in specified criticality _is_ a
change of semantics, and quite a major one in my opinion. The
choice of whether to change the control or create a new one should
be seen in that light.
>>> I offer the the following replacement text:
>>> - guidance as to what value should be provided for the criticality
>>> field,
>>
>>Which even removes existing servers' license from rfc2251 to treat
>>wrong criticality as an error. Please, no.
>
> I don't believe the text I offerred says anything about how servers
> are to treat the criticality value. However, given the history
> of control designers and implementors in this area, clarification
> (as I offerred) would be wise.
Huh? The original rfc2251 text, quoted at the top of this message, says
- or can be interpreted to say, take your pick - that supplying another
criticality is a user error. Your replacement text above does not in
any way say that, so I don't see how the server can be allowed to treat
it as an error.
OTOH, your following text does give a useful clarification:
>>> (the processing semantics of the criticality field, defined above,
>>> should not be altered in any way by the control specification)
--
Hallvard