The BIND used to establish the session carries information about the initial state of the bracket and direction machines. This can be specified in the BIND if either of the following conditions are satisfied:
If neither of the conditions hold, then the initial direction state is contention.
When the direction is specified in the BIND, the application should assume the direction state specified in the half-duplex reset state as soon as data can flow. This field can be obtained indirectly by using a BIND check index that only accepts a particular direction, or directly by reading the HDXRSET field in the BICB on the Open(PLU) OK Confirm message (see Opening the PLU Connection), or by reading the BIND on the Open(PLU) Request.
When in contention state, either the PLU or the application can initiate a bracket (see Brackets); the successful initiator of the bracket obtains direction (unless direction is relinquished when opening the bracket by sending BB, BC, EC, or CD). Since the secondary is assumed to be the contention winner, the application can assume send state from contention sending BB and rejecting any subsequent Status-Control(BID) Request from the local node before receiving Status-Session(BETB). When the application accepts a Status-Control(BID) Request in contention state, then it must assume receive state.
Half-duplex flip-flop direction can change through the following actions:
Providing the FM profile is correct (3, 4, or 7), the application can request direction from the host using a Status Control(SIGNAL) Request with CODE1 set to 0x0001; CODE2 is set to a user-defined value.
The following three figures illustrate the direction protocol for applications using the half-duplex flip-flop mode.
In the first illustration, the application issues and receives the CD without error.
In the following illustration, the host sends a negative response to inbound data; the application assumes receive state, and then the host sends CD to give the application direction.
In the following illustration, a complete outbound chain is received without error, but is rejected by the application; note that even though the chain carried CD, the application does not have direction.