 |
» |
|
|
 |
HDLC/LAP-D produces a range of buffer status codes and unsolicited status
messages, apart from the standard communications statuses described
elsewhere in the ACC documentation. In the following descriptions,
the statuses marked with a dagger (*) are not generated
by UI terminals. The defines for these status codes are located
in /usr/include/zcom/zcomstatus.h and /usr/include/zcom/zx25status.h. Terminal Request Status Codes |  |
The following statuses are returned in response to a request
to create, destroy, enable, disable, activate or deactivate a terminal.
Although these are a part of the standard status set, they are not
used by all protocols, and have a particular significance within
HDLC/LAP-D. 0 | TM_OK | No error detected The request was successfully processed.
In the case of enabling or disabling the terminal, this does not
mean that the link has been established or disconnected. The link
status is reported via unsolicited status messages. | 1 | TM_MUST_DSBL | Terminal must be disabled This status code is returned in response
to a terminal delete request. Before deleting a terminal, it must
be disabled and the ST25DSBL unsolicited status message must have been received. | 12 | TM_PROT_REJ | Protocol detected error TM_PROT_REJ is returned in response to a terminal enable request
when the configuration specified by the poll, select and option
words is invalid. In addition to returning TM_PROT_REJ, the protocol generates a ST25ENF unsolicited status message. For configuration information, Chapter 4 “Protocol Specific Configuration” Another possible, although unlikely, cause
for TM_PROT_REJ is that an error occurred when the protocol attempted
to setup a group of LAP-D terminals. In this case, the ST25ENF unsolicited status message will not be generated. | 14 | TM_TABLE_SIZE | Protocol table sizes too small The configured terminal table size
is too small to allow LAP-D to run. This status is returned in response
to a terminal creation request. |
Unsolicited Status Messages |  |
This section describe the unsolicited status messages which
may be received on the ZLU which is set as the receiver for a terminal
using this protocol. The status codes received may or may not have
bit 7 set. Bit 7 is the down bit (masked by IO_DOWN_MASK). The down bit is used as an indicator of the
link status. When an error occurs on the link or the link is enabled
after being disabled, the protocol attempts to enter multiple frame
acknowledged operation. Until the attempt succeeds or fails, the down
bit is clear (i.e. the terminal is considered to be up until proven otherwise).
If the attempt subsequently fails, the down bit is set; otherwise
the down bit left cleared. The following status messages are generated
in response to terminal enable and disable requests: 0 | IO_OK | No error detected This status message is generated in
response to a terminal enable request after multiple frame acknowledged
operation is established. Note that the down bit will always be
clear. | 41 | IO_ALRDY_ENBL | Terminal already enabled This status message is generated in
response to a terminal enable request when the terminal is already enabled
and the protocol is not currently trying to establish multiple frame
acknowledged operation. If the protocol is currently trying to establish
multiple frame acknowledged operation, this status message will
not be sent. Instead, either a ST25ENBL with the down bit set or an IO_OK status message will be sent. | 42 | IO_ALRDY_DSBL | Terminal already disabled This status message is generated in
response to a terminal disable request when the terminal is already disabled.
The down bit will always be set. | 64 | ST25ENBL* | Link NOT established on ENABLE This status message is generated in
response to a terminal enable request after it is determined that multiple
frame acknowledged operation can not be established. The down bit
will always be set. | 65 | ST25DSBL | Link disconnected on DISABLE This status message is generated in
response to a terminal disable request after multiple frame acknowledged
operation has terminated. The down bit will always be set. | 77 | ST25ENF | ENABLE failed - bad config This status message is generated in
response to a terminal enable request when the terminal's configuration
is invalid. The down bit will always be set. |
The following status messages are sent after an error occurs
when the link is in multiple frame acknowledged operation. The error
conditions include cable faults, inability to receive acknowledgment
of transmitted frames or receiving frames that are inconsistent
with multiple frame acknowledged operation. When one of these error
conditions occur, the protocol attempts to reestablish multiple
frame acknowledged operation. After the
attempt has either succeeded or failed, the unsolicited status message
that reflects the original error condition is sent. If the attempt fails,
the link is considered disconnected and the down bit will be set
in the status; otherwise the link has only been reset and the down
bit will be clear. 66 | ST25XDCD | Link disc. on loss of carrier The card is no longer receiving the
required communications signals. This can be caused by incorrect port
configuration or disconnected/faulty cabling. | 68 | ST25RTRY* | Exceeded retransmit limit A frame was transmitted N200 times
without receiving an acknowledgment from the remote. | 69 | ST25TXFR* | Reset/Disc. due to transmitted FRMR An unrecognized frame was received
by the protocol; this causes LAP-D to reset the link by sending
a SABME. For consistent error handling between LAP-D and LAP-B (which
sends a FRMR instead of a SABME), the protocol sends this status
message. The data buffer contains the information field of the FRMR
that LAP-B would send. | 70 | ST25RXFR* | Reset/Disc. due to received FRMR A frame reject response was received.
A copy of the received FRMR's information field is in the
data buffer of the unsolicited status message. | 71 | ST25RXDM* | Reset/Disc. due to received DM The protocol received a Disconnected
Mode response. | 72 | ST25RXSA* | Reset/Disc. due to recvd SABM/SABME A Set Asynchronous Balanced Mode Extended
command was received by the protocol. | 73 | ST25RXDI* | Reset/Disc. due to received DISC The protocol received a DISConnect
command. | 74 | ST25RXUA* | Reset/Disc. due to received UA An Unnumbered Acknowledgment response
was received by the protocol when the protocol had not solicited
a UA. | 75 | ST25RUFR* | Reset/Disc. due to unsol final resp The protocol received a response that
had the Final bit set even though the last command sent by the protocol
did not have the Poll bit set. |
The following status messages are used by the protocol to
return data in response to a control write: 88 | ST25L2STAT | Statistics upload This message is sent in response to
a CW_STATS control write. The data buffer contains a x25l2stat_type structure (defined in zcomx25.h). | 89 | ST25REVCD | Revision code upload This message is sent in response to
a CW_REVCODE control write. The data buffer contains a single
byte which is the current protocol version. Currently, this is 11. |
Write Completion Status Codes |  |
The following statuses are returned in response to write requests. Although
these are a part of the standard status set, they are not used by all
protocols, and have a particular significance within this protocol. 0 | IO_OK | No error detected The request was successfully transmitted
and acknowledged by the remote side. | 1 | IO_DSBL | Terminal disabled The terminal must be enabled before
it will accept write or control write requests. | 22 | IO_LNK_DSC | Link disconnected An unrecoverable error occurred while
this request was waiting to be sent or to be acknowledged by the
remote side. The transmit request has been flushed. | 23 | IO_LNK_RST* | Link reset A recoverable error occurred while
this request was waiting to be acknowledged by the remote side.
The transmit request has been flushed. |
Control Write Completion Status Codes |  |
The following statuses are returned in response to control
write requests. Although these are a part of the standard status
set, they are not used by all protocols, and have a particular significance
within this protocol. 0 | IO_OK | No error detected The request was successfully transmitted
and acknowledged by the remote side. | 1 | IO_DSBL | Terminal disabled The terminal must be enabled before
it will accept write or control write requests. | 11 | IO_LONG_MSG | Message too long Indicates one of the following errors: The packet length in the
header is not zero. The control length in the header is not zero for
a CW_STATS or CW_REVCODE request. The control length in the header is greater than
six for a CW_TIMERS request.
| 12 | IO_SHRT_MSG | Message too short Indicates one of the following errors: The request length is less
than four (too short to contain the control write header). The control length in the header is less than six
for a CW_TIMERS request.
| 24 | IO_BAD_CTL | Bad control function or format Indicates one of the following errors: The control length in the
header does not equal the request length plus four. The control code in the header contains a value other
than CW_STATS, CW_REVCODE or CW_TIMERS. The value specified for a timer resolution in a
CW_TIMERS request is outside of the range zero to four.
|
Read Completion Status Codes |  |
All receive completion messages will have the status IO_OK. Received messages that have errors are not returned
by the protocol.
|