P1394 Mail Archive: Re: P1394> Print Protocols

P1394 Mail Archive: Re: P1394> Print Protocols

Re: P1394> Print Protocols

Eric Anderson (ewa@apple.com)
19 Feb 98 21:11:20 -0800

As part of a truly native SBP-2 printer profile, I would expect
to include a sequence number or something in the ORB command,
so that a target can be sure not to execute the same command
twice. I would also allow a target to abort at any point it
likes and communicate this to the initiator. For example,
"I ran out of paper between commands 4 and 5 in ORB 1129
and I flushed further execution. Tell me what to do now.".

Eric Anderson ewa@apple.com
Apple Computer, Inc. 408-974-8187

Greg wrote:
> This is true if the tasks being processed by the target are
> idempotent. (In other words, that they may be executed one or
> more times and end up with exactly the same result.) This
> feature is needed to support the following situation:
> - a task to be partially processed
> - a Bus Reset to occur (which implicitly aborts the task)
> - the task requeued on the list
> - the task completely restarted
> I think this is an inheirent attribute of mass storage commands.
> Unfortunately, printers are not.
> Sending a set of commands which are larger than the printer can
> buffer forces the printer to process some commands before they
> are all received. If a Bus Reset occurs, then either the printer
> must validate that the same ORB was requeued and try to resume
> from the last valid offset fetched, OR the protocol can guarantee
> that the ORB's data block has been completely transferred before
> the data is processed. The first case is difficult at best, the
> second is easy and provides idempotency at the cost of
> negotiating the maximum sizes of the data blocks referenced by
> the ORBs.
> So, it's easier for the initiator to be aware of the transport
> packet sizes supportable by the target than it is to work around
> the Bus Reset problem by another mechanism. If you have a better
> suggestion, I'll certainly consider it.
> "Need" is relative to the context. In this thread, we're talking
> about using SBP-2 for printing services.