[Sis-uce] Thoughts?
Scott Burleigh
Scott.Burleigh@jpl.nasa.gov
Tue, 13 May 2003 09:35:46 -0700
At 10:23 AM 5/13/2003 +0100, Massimilano.Ciccone@esa.int wrote:
>Hi CFDP folks,
>I've carefully read the UCE concept paper and I have the following comments
>to make:
>
> I agree with the implementation of a periodic re-examination of the
> unfinished transaction upon receipt of EOF(No Error).
> I do not agree with issuing a protocol error upon "Check Timer
> Expiration". This goes against the nature of CFDP Unacknowledged
> procedures, where a Notice of Completion (Completed) is issued upon
> reception of an EOF(No Error) PDU, regardless the completeness of the
> received file.
Yes, this would be a change in the nature of Unacknowledged transaction
completion.
> I propose NOT to introduce a new error code and to issue a Notice of
> Completion(Completed) in any case (also after the Check Timer expired n
> times). This would make things much coherent and easier for implementers
> (unless there is a precise need in declaring an error in case the received
> file is uncomplete)
I think the need you mention is a key issue. If the Nth expiration of the
Check Timer resulted in a Notice of Completion (Completed), then the burden
of checking the completeness of the file would fall on the application: the
resulting Finished (No error) indication would be ambiguous, just as in
fact it is now. Raising a Fault would remove the ambiguity and give
mission operators somewhat better control of transaction processing.
You could, of course, do essentially the same thing in the user
application. The advantage of building it into the CFDP Recommendation
itself would be standardizing this behavior so that it doesn't have to be
re-implemented in every user application.
> The use of the "Check Timer" could also be triggered by a flag field in
> the header in order to allow backward compatibility with respect to
> current CFDP implementations.
You're right, Max, but I think that would actually increase, rather than
reduce, the impact of this change on implementations.
As proposed, the UCE modification would only affect the receiving entity in
an Unacknowledged transaction. All of the changes would be in the service
interface, with no effect on protocol traffic at all. An implementation
that omitted the modification would, as a sender, be indistinguishable from
one that did not; as a receiver it would of course be backward compatible
with existing user applications, because its behavior would be unchanged
from the current standard, and remote senders would be unaffected.
Adding a flag field in the PDU header would entail modifying every sender
as well, introducing much more serious interoperability concerns. And it's
not clear how the sender would know how to set this flag in order to
produce the behavior desired at the receiver. Let's please not do that!
Scott