For half-duplex contention, the initial direction state is contention. Half-duplex protocol operates during a chain (only one partner can send), but the direction state normally returns to contention at the end of each chain. The CD indicator in the RH is thus not required; however, if the CD indicator is used, direction is reserved for the receiving half-session. Therefore, if the application receives CD, it should assume send state and not expect to receive data. Conversely, if the application sends CD, then it cannot send again until it has received a chain from the host.
In the event of an error being discovered by either half-session, the application must assume receive state, since the host is responsible for recovery.
If both half-sessions attempt to start a chain when the direction state is contention, the race is resolved in favor of the secondary application using a sense code of 0x081B. However, the possible window between the local node and the application means that the local node cannot determine when outbound RQE data is received by the application. Therefore, if the local node receives data from the application while it determines that the half-duplex contention state is receive, it will reject it with a noncritical NACK-2 (0x2004 direction).
The following two figures illustrate the direction protocol for applications using half-duplex contention mode. The three figures in the previous topic would also be valid although CD does not need to be specified.
In the following illustration, the application issues and receives data using half-duplex contention protocol without error.
In the following illustration, the half-duplex contention race is resolved in favor of the application.