Report 2003 Actions
Problem Report Number |
2003 |
Submitter's Classification |
Test Suite problem |
State |
Resolved |
Resolution |
Rejected (REJ) |
Problem Resolution ID |
REJ.X.0589 |
Raised |
1996-09-20 08:00 |
Updated |
2003-03-13 08:00 |
Published |
null |
Product Standard |
Transport Service XTI |
Certification Program |
The Open Brand certification program |
Test Suite |
VST version 4.1.4 |
Test Identification |
XTI.os/cots/snd 18 |
Problem Summary |
PGT4R.018 The specification for t_snd() states the following: "The error [TLOOK] may be returned to inform the process that an event (for example a disconnect) has occurred". The use of the word "may" in the sp... |
Problem Text |
The specification for t_snd() states the following:
"The error [TLOOK] may be returned to inform the process that an event (for example a disconnect) has occurred".
The use of the word "may" in the specification clearly suggests that the returning of this error for certain events is an optional feature of the implementation.
[ There are similar objections that can be raised for T.snd assertion 17 which requires TLOOK on disconnect event on similar grounds though that is not an issue with our implementation.]
The only event our implementation returns TLOOK error on is a disconnect event because in that case the remote end has gone away and there is not much point in continuing to send data. (This also is the reason why we pass T.snd assertion 17).
However, in this test (T.snd 18) wants an incoming orderly release event to also generate a TLOOK error for t_snd(). Here the choice in our implementation is to not return a TLOOK error condition. We interpret that the specification allows for returning a TLOOK error in case of an incoming orderly release but does not require it. Our implementation chooses not to return a TLOOK error in case of an incoming orderly release (and returning it only in case of incoming disconnect).
The rationale for our implementation choices is as follows. We interpret incoming and outgoing data flows to be independent streams. In an orderly release transport, an incoming orderly release is just an indication that tags that end-of-transmission in that direction. It only indicates that the last byte in that reverse data-flow direction has been transmitted and that direction will not send any more data. This information can be used by applications to ensure that the application-level handshake (to ensure that last byte in each direction has been successfully received) can be done. It is however (unlike an incoming disconnect), according to our view, an event of sufficient interest to the transmitting end to warrant interrupting its flow with a TLOOK error. That is an implementation choice that is allowed by the specification. Therefore we would like to request a waiver in this case.
|
Test Output |
/tset/XTI.os/cots/snd/T.snd 18 Failed
Test Description: If the implementation supports a connection-oriented transport service, which supports an orderly release mechanism: When a T_ORDREL event occurs, then t_snd() returns (int)-1, sets t_errno to TLOOK, and leaves the state of the transport endpoint unchanged.
Test Information: t_snd(fd, buf, 1, 0x0) on TCP endpoint RETURN VALUES: expected: -1, observed: 1 TERRNO VALUES: expected: 9 (TLOOK), observed: 0 (NO ERROR)
|
Review Information
Review Type |
TSMA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Recommendation |
No Resolution Given |
Review Response |
While the statement in the t_snd() definition is correctly quoted, it should also be noted that there is a statement in Section 5.6 which mandates the TLOOK error.
"The following list describes the asyncronous events which cause an XTI call to return with a [TLOOK] error
..... t_snd() T_DISCONNECT, T_ORDREL ....."
It should also be noted that the quoted statement from the t_snd() definition applies to both the T_ORDREL and T_DISCONNECT. This does not seem to be an entirely satisfactory statement since, as pointed out in the commentary, the sending end should always be informed of a disconnect.
It seems that the specification is inconsistent between Section 5.6 and the t_snd() definition. It would also be helpful if the specification clarified which events the "may" in the t_snd() description applies to.
It is recommended that a waiver should be granted on the grounds of a "Grey Area in the Specification" rather than a "Test Suite Deficiency" as requested. It is recommended that this waiver requested is reviewed by the XNET working group.
|
Review Type |
Expert Group Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
The specification is considered unambiguous, the word 'may' is being used in a different sense from the usage in the request. May means 'in some circumstances every implementation will' rather than 'it is implementation defined whether, in these particular circumstances, an implementation will'.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
Rejected (REJ) |
Review Conclusion |
This request is refused.
|
Problem Reporting System Options:
|