Julian,
If declarations
should not be repeated (except for those where it is explicitly allowed), then
it should be "negotiate or declare" because "negotiate" doesn't cover
declarations. Alternatively, one could add an explicit definition that
"Negotiate" includes both declarations and negotiations. Secondly, SendTargets
is not a valid example for login as it is FFPO. I think the only
parameter explicitly allowed to be duplicated during Login is TargetAddress
(when returned as a result of a redirect). Furthermore, I can not find any
explicit statement that SendTargets may be repeated during a FFP negotiation
sequence. Only TargetName and TargetAddress have explicit text allowing them
to be repeated (in Appendix B for both and in the description of redirection
for LoginResponse for TargetAddress).
Therefore, I
suggest:
For
4.3:
Neither the initiator nor the target
should attempt to declare or negotiate a parameter more than once during login
except for responses to specific keys that explicitly allow repeated key
declarations (e.g. TargetAddress). If detected by the target this MUST result
in a Login reject (initiator error). The initiator MUST drop the
connection
For
4.4:
Neither the initiator nor the target should attempt to declare or
negotiate a parameter more than once during any negotiation sequence without
an intervening reset except for responses to specific keys that explicitly
allow repeated key declarations (e.g. TargetAddress). If detected by the
target this MUST result in a Reject with a reason of "protocol error". The
initiator MUST reset the negotiation as outlined above.
Pat
Pat,
4.3 and 4.4 cover two diferent
phases.
Parameters should not be negotiated or declared
twice.
I think that you refer to the responses to
SendTargets - those contain more than an instance of the declarations and have
to outlined.
How about the following text in 4.4:
Neither the initiator nor the target should attempt to negotiate a
parameter more than once during login except for responses to specific keys
that explicitly allow repeated key declarations (e.g. SendTargets). If
detected by the target this MUST result in a Login reject (initiator error).
The initiator MUST drop the connection.
and in
4.4:
Neither the initiator nor the target should attempt to negotiate a
parameter more than once during any negotiation sequence without an
intervening reset except for responses to specific keys that explicitly allow
repeated key declarations. If detected by the target this MUST result in a
Reject with a reason of "protocol error". The initiator MUST reset the
negotiation as outlined above.
Julo
Julian,
The following text appears in 4.3 (page 78 just before 4.3.1):
Neither the initiator nor the target should attempt to negotiate a
parameter more than once during login. If detected by the target this
MUST result in a Login reject (initiator error). The initiator MUST
drop the connection.
and nearly the same text in 4.4 (page 85 near the end):
Neither the initiator nor the target should attempt to negotiate a
parameter more than once during any negotiation sequence without an
intervening reset. If detected by the target this MUST result in a
Reject with a reason of "protocol error". The initiator MUST reset
the negotiation as outlined above.
This is confusing partly because "negotiate" seems to be generally used covering both negotiations and declarations and in some cases covering only negotiations. It isn't clear in which sense it is used. If the text above applies only to negotiated values, then it would be allowable to send parameters such as Initiator Name, SessionType, and MaxRecvDataSegmentLength over which doesn't seem to be a good idea. However, there are other declarative parameters which are sent multiple times - SendTargets where there are multiple targets or multiple addresses for a target requires sending the same parameter multiple times.
Perhaps the text should be changed to:
Neither the initiator nor the target should attempt to declare or negotiate a
parameter other than TargetName, TargetAlias or TargetAddress more than once....
Regards,
Pat