1394 PWG - Issue No.961206-001

1394 PWG - Issue No.961206-001
Back to the Issues Page
ISSUE NO.:961206-001NAME:Choose protocol layer (data delivery mechanism)STATUS:Closed
RESOLUTION:This issue is considered closed after a vote at the March '98 Austin Meeting. The group decided to focus on an SBP-2 solution. This spawned a new issue: 980302-012DATE:March 3, 1998
ORIGIN:12/6/96 Meeting at Adobe Systems
DESCRIPTION:1394 provides physical signalling. Options include leveraging an existing protocol or creating a new one.
DISCUSSIONS:
  • Initial discussions included EPSON proposal and SBP-2
  • Update of issue from 5/14/97 Meeting in San Diego
    • Different protocols / layerings
      • Login Protocol and early DPP
      • 1284.4 over SBP-2
  • Update of issue from 5/14/97 Meeting in San Diego
    • Data Flow Models:
      • Isochronous push model
      • Async Block-burst
      • Async Large buffer
      • Async Pull Model
      • Vendor specific model
  • Update of issue from 5/14/97 Meeting in San Diego
    • IEEE 1284.4 over SBP2
      • Is SBP2 to heavy for consumer devices?
      • Do you need to implement all of SB2, or is there a subset that is usable?
  • Update of issue from 6/23/97 Meeting in Nashua
    • High Performance Transport Concept using Shared Memory Model
      • Short summary of the concept is that it will use SBP-2 to move the data.
      • The details of the command set will be presented in the future.
  • Update of issue from 8/4/97 Meeting in Redmond, WA
    • Protocol Updates
      • Lee Farrell presented on FCP and the Requirements For Printing from Nashua.
      • Alan Berkema presented on SBP-2 and the Requirements For Printing from Nashua.
    • Quick Overview of various options
      • IP over 1394
        • (-) Plug & Play
        • (-) IP Address Administratin
        • (+/-) Implementation Cost
        • (+/-) product cost
      • FCP - Defined Command/Response Window in 1394 Space
        • (-) Fixed Entry Point for multi-logins
        • (-) No Flow Control
        • (+) Thin Implementation
        • (-) Access Control Missing
        • (-) Needs Transport
      • SBP-2
        • (-) Unidirectional (Not true bi-directional)
          • The main issue raised was SBP-2's support for True bi-directional communication. Some feel it is Bi-directional. Need better investigation into issues.
        • (-) Complicated Implemenation
        • (+) Flow Control Implicit
        • (+) Efficient DMA transfers - Given that initiator knows the amount of data to move and it is large amount
  • Update of issue from 9/15/97 Meeting in Atlanta, GA
    • Protocol Proposals
      • SBP2 Printing Model
        • Minimal requirements for PC Printing protocol
          • Multiple Logical Channels
          • Flow Control
          • Multiple Hosts Connectivity
          • Multiple Targets Connectibility
          • Reconnection after bus reset
        • Multiplexing to support multiple clients for the transport.
        • Implementation of multiple logical channels through SBP2
          • How many logins does one printing session require
            • 1-Build MLC internally within one login
            • 2-Requires multiple login as same number of logical channel
            • 3-Prioritize logins
          • Believe that #3, Prioritize logins, is the best solution This will implement a Primary host login but allow for other hosts to login. Additional hosts will login as Secondary priority hosts. Latest Epson proposal is available on the PWG website.
      • HPT High Performance Transport
        • HPT is a Command set layer on top of SBP2 that adds the functionality of the required transport.
          • Full duplex communication
            • Queuing model
            • Request based Flow Control
            • 3 command, 2 status
              • data transfer
              • read request, requested read
              • direct status, direct status response
          • Primitive device control/status
            • 4 command, 3 status
              • Acquire, Release, Abdicate device response
              • Basic device status
          • Logical Channel
            • 2 command, 2 status
              • Open, Close channel
        • HPT Objectives
          • High performance with low overhead
          • Bi-directional data transport
          • Multiple service channels
          • Application independence
          • Backward compatibility with bus environment support
          • Self configurable (like 1284.4 open channel), no prior setup required
      • FCP or SBP2 versus Printing Protocol Requirements
        • SBP2
          • Not true bi-directional communication
          • Bi-directional extensions complicated and troubled
          • ORB fetching considered "heavy protocol"
          • HPT is a Command set layer on top of SBP2 that adds the functionality of the required transport.
        • FCP
          • No access control
          • Fixed communication address
          • Does not extend to multiple devices
        • Proposal DFA -- "Data FIFO Address Protocol"
          • Create an Inbound and Outbound Queue on each of the initiator and target
          • Both sides push data into the peer's data fifo
          • Login and Login Response
          • Provides access control
          • Facilitates connection to multiple devices
          • Allows simple reconnection
          • Provides for unsolicited status
          • Limited Loginless status through query logins
          • Need data FIFO address exchange mechanism
        • DFA Pros
          • Borrowed from IP1394
          • Sort of FCP like
          • Bi-direction communication
          • Efficient 1394 unified block write transactions
          • simple, easy to explain
          • command set independent
          • easily add higher layer protocols
          • Logins do not add that much weight to FCP
          • Extensible to multiple devices
        • DFA Cons
          • Does not take advantage of 1394 shared memory
          • Do packets need additional header info
          • Does not address flow control
          • Could use this as a datalink layer for a 1284.4 transport client.
  • Update of issue from October 27th Meeting in Boulder, CO
    • Protocol Proposals
      • SBP-2 as a Data Link for IEEE 1284.4.
        • Simplified target agents
          • Only one type of the SBP-2 target agent is used
          • Can executes a single request at a time
          • Does not support target agents that can manage queues (linked lists) of requests.
          • Creates a 1284.4 Management ORB—using a new function code—and its associated Status Block
        • Proposal's design features:
          • pure data link
          • bus reset only affects a single data link transaction
          • uses an existing standard
        • Concerned was raised that proposal is not fully symmetric.
        • Could the simplified "single request only" agent create a potential blocking condition for multiple 1284.4 channels.
          • (If there is no timeout on the completion of a single request process, is it possible to block the activity of another channel?)
          • Explanation that one Login would be executed for each separate 1284.4 channel, enabling multiple ORBs per device.
        • Issue regarding in-order delivery through bridges - although bridges have been considered out of scope by this group.
        • Proposal evaluated against each of the "MUST" requirements.
          • Support multiple, concurrent, independent, symmetrical connections – These requirements are achieved, but in order to provide "symmetrical connections," a set of both initiator and target SBP-2 capability code would have to be implemented at each endpoint. [Randy noted that these implementations must be well-specified as part of the standard. This would ensure that a commercially-supplied implementation (in an operating system) will work properly with the code developed by a device vendor.]
          • Provide in-order, byte-stream and in-order, buffer (datagram?) services – Achieved.
          • Provide a directory service – Achieved by 1284.4
          • Transparently handle transient link interruptions – Achieved.
          • Reliability – Achieved at transaction layer.
          • Be data, application and O/S independent – ???
          • Do not preclude concurrent operation of other protocol stacks – Achieved.
          • Provide efficient data transmission – Achieved.
      • Other SBP-2 Issues
        • Request/Reply ORB proposal
          • X3T10 group proposed a Bi-D ORB which is double the size of a normal ORB.
          • This would allow either reads or writes for a given Bi-D ORB in the task list.
          • Other WG reflector traffic felt the same functionality could be accomplished with higher layer by just adding two ORBs to the list and allowing out of order execution.
          • Based on the discussions on the 1394 PWG reflector and at this meeting, it was decided that the current requirements could be met without use of the Bi-D ORB.
        • Embedded PostScript status codes
          • How to supporting a PostScript capability which obtains information from a printer device. By issuing a <control-t> to a printer, it will cause the device to return status information of an unknown length.
        • Supporting an "unsolicited data" notification from the printer.
          • To be used by the stack as a way of alerting the host that the target device needs attention.
          • It was not clear how OS vendors would support such capability.
        • Fully symmetrical connections
          • One solution would be to solicit OS vendors to provide Initiator and target functionality.
          • May be considered as "too heavy"
          • It was not clear if OS vendors would support such capability.
          • Issue raised as to whether an "initiator-only" proposal could support all the features required for 1284.4.
            • Requires login-less messaging scheme.
            • Note: 1284.3/.4 implements this requirement via a polling mechanism in the datalink.
      • Proposal DFA -- "Data FIFO Address Protocol"
        • Put "on hold" by author because it requires sequence numbering, he feels that it is more complex than he would like.
  • Update of issue from Dec. 97 meeting in Los Angeles, CA
    • Protocol Proposals
      • SBP-2 for symmetrical communication
      • Decision tree:
        • Write message (DL_Data.indication)
          • The initiator talks to the target
            • DL_Data.indication.from.initiator
            • The initiator informs the target when output data is ready
            • The target informs the initiator when fetch transaction has been completed.
            • The Target talks to the initiator
              • DL_Data.indication.from target
              • The target informs the initiator when the output is ready
              • The initiator informs the target when the write transaction has been completed.
        • Read Message (DL_Data.request)
          • The initiator reads from the target
            • DL_Data.request.to.target
            • The initiator informs the target when input buffer is allocated
            • The target notifies the initiator when write transaction has been completed.
          • The target reads from the initiator
            • DL_Data.request.to.initiator
            • The initiator informs the target when output data is ready
            • The target informs the initiator when read transaction has been completed.
      • HPT Presentation
        • How to implement HPT on top of datalink.
      • First draft of the "Imaging Device Communications Profile"
        • Larry will work with Alan on the introduction.
        • A vote was taken and passed unanimously to change the title of the document to 'specification' rather than a profile.
        • Keep the Generate bits but define how they will be used.
        • Is the term "Image Applications" appropriate? Need to show that going through the 1284.4 box you could go to other interfaces, such as 1284, USB, etc. you could go directly to SBP-2, or you could go through another layer that provides the capability to use other interfaces.
        • SBP-2 bi-directional transfer
          Reverse Initiator/Target functionality Requires a change in the host implementations. A device must provide both the initiator and the target sides of the interface. => Should this be full I/T functionality or some limited feature?
        • Login Solicitation Register
          Allows Target to request that the Initiator do a Login in order to provide a peer-to-peer type of functionality. This would require a change to, or modification of, the SBP-2 specification.
        • Unsolicited Status Works with existing devices (?) but requires a Login for each available target. Polled interface. Do we want this?
        • Section 13. Why SBP-2
          A discussion ensued as to whether the SBP-2 is the only datalink suitable for this standard. Two major reasons are: 1. It is an existing standard being used by other devices 2. It is an efficient transport protocol and is optimized for 1394 DMA shared memory access.
          • What has not been stated clearly is that a significant goal is to gain support from commercial OS vendors for an implementation of the protocol stack this group will define. As SBP-2 is already implemented in some of the OS for future release, there is a good incentive to use this as the basis for the 1394 PWG protocol stack. One thing we need to define is the implementation needs of our stack. If the features are not available, what is the effect on this proposal?
        • Section 15, Item 4
          What is the value of the timeout? Does this need to be a negotiated value? Should there be an explicit action rather than a passive timeout?
        • Section 14, Multiple Logical Channels
          Routing information needs to be provided here, not .4 Channel information. => PSID and SSID should be removed from the command_block MLC should still work over the SBP-2 as long as the DL always has a buffer available. Task lists may be associated with a single Login. If this can be associated with a single 1284.4 CBT then the fetch agent can simply pass the data to the .4 client.
        • Section 17. Peer to Peer
          Needs clearer definition of what is meant by "peer to peer" within the context of this specification.
        • Section 19. Command_block ORB
          Remove PSID and SSID from the command_block.
        • Status Block
          Remove PSID/SSID. Review the status_codes.
        • Section 23, Reconnection
          Item 2 states a timeout of 2 seconds. The SBP-2 standard specifies 1 second. We may want to change this to a longer, human interaction, time. For Async services this may be extended. This is to allow a transport connection to be maintained for some time longer than bus reset events. For example, if someone adds a device in the chain while a .4 conversation is active, the bus reset and re-enumeration may not automatically cause a SBP-2 Logout to occur thus terminating the .4 CBT.

          The ORB fetch agent should only pass completed buffers up to the next level. This ensures that partial buffers will not be passed, or that repeat buffers will not be sent, if there is a bus reset while data is getting transferred.

          Need to understand how things should work under these types of events:

          • How are the task lists effected by bus resets?
          • What are the rules for Abort?
          • Does this require a packet size negotiation between .4 and the DL?
          • Part of this discussion comes back to "Are we looking at the correct transport (1284.4) or datalink (SBP-2) for our requirements?"
        • 1394 PWG Solution Options
          • We would like to maintain one Client interface.
          • We cannot do anything about the 1394 Transaction layer interface.
          • See the following diagram:
      • Action on Draft Profile
        • Motion made to adopt 1284.4 over SBP-2 as the goal of this group.
        • Discussion ensued, motion was tabled until a later time.
        • Exact text of the motion contained in the minutes.
  • From January 26th, 1998 Meeting in Maui, HI
    • Protocol Proposals
      • Rev 0.1c of the Imaging Profile - (Alan Berkema, Editor)
        • Refer to the following Diagram for an understanding of the space this profile addresses.
      • Specification Review (rev 0.1c)
        • Boulder – voted to choose SBP-2 and craft a 1394 IP ala the Mass Storage Profile
        • LA – First revision of the IP discussed. 1284.4 was mentioned in the document, but should it be? (current revision 0.1c does not include it.)
        • Maui – Focus on SBP-2 Transport/Data Link Layer, consider absence of 1284.4.
          • General Document Issues
            • Name of document no longer includes word "profile" in title. Now called "IEEE 1394 High Speed Bus Imaging Device Communications Specification." Point was made to reconsider if there was a preference to have the word "profile" back in the title. The decision was deferred.
            • This version of the document excludes any reference to 1284.4, and is submitted as a different proposal to the previous version (rev 0.05)—not just an update. Based on the review results, the two proposals will either be maintained separately, or merged into one proposal.
            • PROCESS ISSUE: List of requested changes to the previous document had not been made. Some were put into the document, some were not, and some are no longer relevant. [There was a side discussion about the logistics that should be followed when revising a document for easy review at a subsequent meeting.]
          • Specific Comments
            • 10.1 – The question about symmetry will be removed and replaced by a new definition of symmetrical based on the previous discussion results.
            • SCOPE: Bridging - 10.2 – This section may need to be revisited based on activity of the 1394 bridging group.
            • 11 – The comment of how the Symmetrical Connections requirement is met will be modified to address the new definition.
      • Presentation on Group Status with Specification (rev 0.1c)
        • "How far have we come?"
        • Proposed specification document.
          • Key Features
            • Transport-only Command Set
            • Extended Access Control Policy
            • Ordered Task Processing Model
              • Confirmed Buffer Transfers
              • Unsolicited Buffer Available indication
            • Built upon stable SBP-2 protocol
            • Does not preclude Function Discovery Mechanism
          • Command Set
            • Send Data-in
            • Receive Data-out
            • Max buffer transfer sizes negotiated per direction
            • Reserved fields for future extensions
            • Buffers tagged as out-of-band in CDB
            • Target may "ping" the initiator
          • Access Control Extensions
            • Policy mirrors Login behavior
            • Reservation keys exist for verification
            • Resumption timeout negotiated during Login
            • Resumption timer takes effect upon a failed reconnect
          • Ordered Processing Model
            • Initiator manages sequencing of transfers
            • Target may abort the task set to avoid deadlock
            • Task completion notification required
            • Buffer Available indicated
              • synchronously with task completion
              • asynchronously with Unsolicited Status
          • What's New?
            • Command Set and Unsolicited Status defined
            • Transient Link Interruption support specified
            • Task request processing …
            • Mechanism to verify initiator is alive specified
          • Differences
            • IEEE 1284.4 transport protocol not required
            • Ambiguous Out-of –order model removed
            • Each service modeled as a separate Unit
          • Proposal Supports
            • Multiple, Concurrent, Independent, Symmetrical Connections
            • In-order Byte- and Buffer-mode data delivery
            • Data, App, and O/S independent
            • Transient Link Interruptions
            • Data Tagging
          • Proposal Lacks
            • Directory Service Support (but doesn't preclude it)
            • Connectionless Service
            • Multi-casting Service
            • Bus-independent Protocol
            • Fair Access Management
            • Selectable Quality of Service
          • Pending Issues
            • How to provide a Directory Service
            • How to encode transport client command set in Unit Directory structure?
            • How to resolve issues w/ Microsoft's SBP-2 Login policy?
            • How does Plug-n-Play work with this proposal?
      • Issues
        • It was felt certain items should be addressed as an "informative annex" to the specification
        • Name of document no longer includes word "profile" in title. Now called "IEEE 1394 High Speed Bus Imaging Device Communications Specification." Point was made to reconsider if there was a preference to have the word "profile" back in the title. The decision was deferred.
        • Review list of requested changes to the previous document to confirm whether or not they had been made. Some were put into the document, some were not, and some are no longer relevant. [There was a side discussion about the logistics that should be followed when revising a document for easy review at a subsequent meeting.]
        • What is meant by "Imaging Device?" Group definitely needs to identify the target devices intended for the protocol.
        • Does not address Isochronous support. Feeling is that Isochronous support should not be considered critical for the specification, and be deferred as a later topic.
        • Charter of the group was questioned again. Summary: "we should be able to print" over 1394. Feeling was that "Imaging Device Communications Specification" does not define enough to meet this goal.
        • "Symmetry requirements" – What is really required?
          • The requirements list includes the term "symmetrical connections."
            • Defined as "either endpoint can open or close a connection." Confirmed that this means either side (any node) can initiate a transport-level connection.
            • Further discussion occurred with regard to whether we really require "top-to-bottom" symmetry (at all layers), or just to provide symmetry to the client.
              • The group decided that the requirement should be refined to say that symmetry is a MUST at the client level ("first-order symmetry"), but any symmetry at lower layers will only be a desirable feature—not essential.
              • QUESTION: Will one device implemented with "top-to-bottom" symmetry have any interoperability problems with a device that was only implemented with client-level symmetry.
              • QUESTION: How do the implementations detect each other's specific behaviors. The topic of addressing this detection/communication was deferred for later discussion.
            • Issue:
              • Is "top-to-bottom" symmetry an "ideal goal"?
              • Does each node require "top-to-bottom" symmetry?
              • The idea of defining "conformance levels" was raised, to allow different implementations to be initiators, targets, or both. However, this topic was deferred until later.
      • Action on Draft Profile
        • Motion made to adopt 1284.4 over SBP-2 as the goal of this group.
        • Discussion ensued, motion was tabled until a later time.
        • Exact text of the motion contained in the minutes.
  • From March 2nd, 1998 Meeting in Austin, TX
    • Protocol Proposals
      Meeting was proceeded by email traffic debating different types of protocol stacks.
      • Email Poll Results
        • As a basis of the discussion on the reflector, an informal email poll showed a preference for a SBP-2 solution.
      • Since some people had not responsed, the meeting began with a review of different solutions.
        • Microsoft advised the group on support within their upcoming OS. As a basis of the discussion on the reflector, an informal email poll showed a preference for a SBP-2 solution.
          • 1394 Devices with SBP-2 should use SCSI device types
            • RBC-Direct Access Device type 0x00
            • Printer Device Type 0x02
            • CDVD Device type 0x05
            • Scanner Device type 0x06
            • RBC Device Type 0x0e
          • MFP devices would have separate unit directories with separate devices (printer, scanner).
            • There was some discussion that a MFP device should be identified as a MFP device with some sub-functions. Conflict with the current "Imaging Device Specification" is that there is a difference between the definitions of functions and services. A function in FDS points to a Unit Directory. Multiple services provided by the function are logical units under the unit directory.
            • In the Microsoft proposal, each logical unit is identified by a single Unit Directory. Microsoft SBP-2 will only enumerate one Logical Unit per Unit Directory.
            • Open issue: Does the Microsoft implementation impose any restrictions or limitations on our requirements?
        • Discussion on protocol path group will pursue.
          1. 1284.4 over SBP-2
            Implement IEEE P1284.4 (MLC) protocol on top of the native SBP-2 command set.
          2. 1284.4 over DFA
            Implement the IEEE P1284.4 protocol on top of the Dual FIFO Architecture as described
          3. DPP 0.71 (PWG-C)
            Direct Print Protocol as defined by the PWG-C, sub-working group 1
          4. Native SBP-2 (single login)
            Data going both directions in one task list
          5. SBP-2 Non-mirroring (dual login)
            Task list for each data direction – 2 logins from one side
          6. SBP-2 mirroring (cross login)
            A task list for each side – one login per side. Target/Initiator functionality on each side.
          7. IP1394
            IP datagrams over the 1394 bus.
          8. HPT
            Prefetching ORBs, queing on device. SBP-2 with an unordered execution model.
          9. AV/C
            PWG-C working sub-group 2. Uses FCP. Has extensions for asynchronous data delivery.
          10. Anything on FCP
            FCP
          11. 1284 Parallel Port Registers on 1394
            Mapping of Microsoft ECP register model (with EPP extensions) onto the 1394 CSR.
        • By unanimous acclimation the list of proposals is closed. This list is closed to any other proposals. The 1394PWG will not entertain any other proposal unless there is a compelling reason.
        • Group then pared the list down to the following:
          1. 1284.4 over DFA
            Implement the IEEE P1284.4 protocol on top of the Dual FIFO Architecture as described
          2. Native SBP-2 (single login)
            Data going both directions in one task list
          3. SBP-2 mirroring (cross login)
            A task list for each side – one login per side. Target/Initiator functionality on each side.
          4. HPT
            Prefetching ORBs, queing on device. SBP-2 with an unordered execution model.
        • There was an update to the requirements which were posted to the web site as a separate document.
      • Issues:
        • Symmetry Discussion - Moved to Terminology
      • Action:
        • Vote was taken at this meeting and closed this issue. Group will focus on SBP-2 solution.
          • "That we adopt Rev. 0.1D (SBP-2 Native) and it's variants as our primary Transport focus for this working group." Motion was seconded, tabled for discussion and review of the other possible solutions. Motion was modified to include some of the HPT design concepts as "possible variants"-in addition to single, cross, and dual logins. Change was made to the motion and it passed on a vote of 15 yes, 1 no, 1 abstain.
Back to the Top of the Page
Back to the Issues Page / Back to the Top of the Page

Go To 1394 Home


If you would like to contribute any input, contact Greg LeClair.
Last modified May.18.1999.