Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
ACC Error Guide > Chapter 4 X.25 Status and Completion Messages

Introduction

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

X.25 may produce a wide range of buffer status codes and unsolicited status messages, apart from the standard communications statuses. Most of the messages are received by the zx25d driver. The ACC X.25 driver (zx25d) may also produce error messages which will be logged to the system error logging device by zmlog. Refer to the ACC Utilities Reference Guide for more information on zmlog. The messages logged by the zx25d driver are explained in Chapter 13 “ZX25D System Messages”

Status messages are retrieved by an application using the zread() routine. To determine whether the message retrieved is a data message or a status message, you must examine the ZCOM message header returned. For example, if the variable mhdp is a pointer to the ZCOM message header returned by zread(), then you should examine the following fields to determine if the message read was an unsolicited status message from the X.25 subsystem:

mhdp->mid.mstype

contains the value ZCOM_MSTYPE_RSLT to indicate a response message from a local terminal. The mhdp->mrq.mrqcode field will further indicate what kind of response message was read.

mhdp->mrq.mrqcode

contains the value ZCOM_MRQCODE_STATUS to indicate the response message contains unsolicited status data.

mhdp->mrq.mrqcode

contains the value ZCOM_MRQCODE_CNTWR to indicate the response message contains buffer completion status for a control write request (zcntl). Usually, this indicates an error condition.

mhdp->mrq.mrqcode

contains the value ZCOM_MRQCODE_WRITE to indicate the response message contains buffer completion status for a write request (zsend). This can indicate an error condition or notification that the data has been transmitted and acknowledged (L2 RR) by the remote system (DCE).

mhdp->mid.mzsrce.zlu

contains the ZLU number of the X.25 link or Virtual Circuit the status message is associated with.

mhdp->mrq.mrqstat

contains one of the status codes listed below in the lower seven bits of the field (e.g. bits 0-6).

Buffer Completion Statuses

At the link level (X.25 link ZLU), the following two buffer (write) completion error statuses may be returned, as well as the more usual standard statuses. Although these are a part of the standard status set, they are not used by most protocols, and have a particular significance within X.25. Either condition will prevent the transmission of any frames across the local X.25 link. The defines for these status codes can be found in the zcomstatus.h and zx25status.h include files.

22	IO_LNK_DSC	Link disconnected

23 IO_LNK_RST Link reset

For Virtual Circuit ZLUs (Level 3), the following buffer (write) completion error statuses may be returned.

1	IO_DSBL	Terminal disabled

3 IO_BUSY Terminal is busy for too long

20 IO_DOWN Terminal down

21 IO_NO_CALL No call established

Also, the following completion statuses may apply to a configuration control write to an X.25 link ZLU. These control writes are normally only issued by the X.25 driver (zx25d).

24	IO_BAD_CTL	Bad control function or format

25 IO_INC_CTL Inconsistent control write.
The parameters of the control write
are inconsistent with the current
setup of the logical channel
terminal.

26 IO_UNA_CTL Temporarily unable to process
control write. The logical channel
terminal is not currently in a proper
state for processing the particular
control function.

Unsolicited Status Messages

The X.25 subsystem generates many different types of X.25 unsolicited status messages. Some of the status messages provide X.25 link specific information, that is, some of the status codes are only generated by the X.25 link and will never be generated by a Virtual Circuit ZLU. Other codes pertain to various VC related protocol errors. Typically these are only delivered to the zx25d X.25 protocol driver. Finally, a third set of status codes are returned which pertain explicitly to the various states and protocol packets received by a Virtual Circuit ZLU. In addition, the VC status codes may also return a data buffer containing additional data about the event. Note that status messages 64 through 84 and 88 through 109 are delivered by default to the X.25 link ZLU receivers.

The format of the status messages listed below is the symbolic name (define) for the specific status code following by the numeric value of the status code in parenthesis and then a description of the meaning of the status code.

X.25 Link Status

These status messages all pertain solely to X.25 link ZLUs. None of these status messages provide an additional data buffer. For status codes 64 through 74, bit 7 of the mrqstat field in the ZCOM message header is used to indicate whether the HDLC/LAP-B protocol is up. This is, if the X.25 link at level 2 has been established. If the bit is set, than level 2 is down. Otherwise, if clear, then the HDLC/LAP-B handshaking has been completed and level 2 is up. Note that although the level 2 protocol is up, you may not use the link until the X.25 packet layer (level 3) restart processing has been completed (indicated by status code 85). These unsolicited status messages may be received by an application program, if requested through a call to zx25l2stat_rcvr(). Status codes 64 through 84 are also delivered to all applications that have set themselves up as receivers on the X.25 link ZLU.

ST25ENBL (64)

X.25 Link status after ENABLE. This status is used to indicate whether the HDLC/LAP-B (X.25 level 2) link has been established following an enable of the X.25 link ZLU. If bit 7 of the mrqstat field is set, the link is down indicating that the MUX card was unable to establish the HDLC/LAP-B link (X.25 level 2) following an enable of the X.25 link ZLU. Most likely the remote end of the link is not responding to the HDLC/LAP-B protocol packets sent by the ACC. If bit 7 = 0, then the link is up (at level 2).

ST25DSBL (65)

The X.25 link has been disconnected due to a disable request on the X.25 link ZLU.

ST25XDCD (66)

X.25 Link disconnected or restarted due to loss of DCD. Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25XCTS (67)

X.25 Link disconnected or restarted due to loss of CTS. Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25RTRY (68)

X.25 Link disconnected or restarted due to retransmission counter N2 being exceeded. Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25TXFR (69)

X.25 Link disconnected or restarted due to a transmitted FRMR (Frame Reject). Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25RXFR (70)

X.25 Link disconnected or restarted due to a received FRMR frame. Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25RXDM (71)

X.25 Link disconnected or restarted due to a received DM (Disconnect Mode) frame. Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25RXSA (72)

X.25 Link disconnected or restarted due to a received SABM (Set Asynchronous Balanced Mode) frame. Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25RXDI (73)

X.25 Link disconnected due to a received DISC (Disconnect) frame. Bit 7 of the mrqstat field will indicate the current up/down state of the link. For this particular status code, bit 7 should always be set to 1 indicating the link is down.

ST25RXUA (74)

X.25 Link disconnected or restarted due to a received UA (Unnumbered Acknowledgment) frame. Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25RUFR (75)

X.25 Link disconnected or restarted due to a received unsolicited final response frame. Bit 7 of the mrqstat field will indicate the current up/down state of the link.

ST25ENF (77)

X.25 Link ZLU enable failed due to an invalid configuration. Check the various configuration parameters, particularly the poll and select words for this X.25 link ZLU.

ST25ENB (78)

X.25 Link ZLU has been enabled.

ST25TPA (79)

X.25 Link ZLU has been activated. This link can now accept inbound I-frames.

ST25TPD (80)

X.25 Link ZLU has been deactivated. Note that a deactivated link will not accept inbound data. The ACC MUX will automatically respond with a level 2 RNR when the remote side of the link attempts to send an HDLC/LAP-B I-frame to a deactivated link.

ST25DSBRQ (81)

A DISABLE request has been issued to this X.25 link ZLU. This status normally begins the link shutdown process. When the shutdown processing is complete, a link disabled status (82) is received.

ST25DSB (82)

X.25 link ZLU has been disabled. The X.25 link is now fully shutdown and will not respond to any HDLC/LAP-B protocol packets.

ST25LNCTO (83)

An X.25 link control timeout has occurred. This indicates that the remote end of the link has not responded to a protocol packet within the appropriate amount of time. For example, when a Restart Request packet is sent, the remote end must respond within timer T20 seconds. This status message is sent when the timer expires without having seen a response from the remote end of the link.

ST25LNNBF (84)

X.25 link buffer shortage has occurred. This indicates that the MUX firmware was unable to find a free outbound buffer for sending a low-level protocol packet (e.g. RR or RNR). This can be caused by applications sending large contiguous messages and/or using a TTGEN configuration file with a Port-Limit parameter that is too large. Try reducing the port limit and insure that no applications are sending large contiguous messages. If an application is sending a large contiguous message, it is recommended that the message be broken up and sent in 4,096 byte blocks using the M-bit where appropriate.

ST25RSTRT (85)

X.25 link Restart processing complete. The X.25 packet layer (level 3) is now up. Note that SVC and PVC ZLUs can not be used until the packet layer is up.

Miscellaneous and Protocol Error Status Messages

The following unsolicited status messages are delivered only to those applications (and the X.25 protocol driver) which have set themselves up as receivers on the X.25 link ZLU. Note that status codes 90 through 106 pertain to specific Virtual Circuits and always have a single data byte associated with them. This data byte contains the MUX terminal number of the associated virtual circuit. This terminal number corresponds to the ptterm and ltterm fields in the Physical and Logical Terminal Tables, respectively.

ST25L2STAT (88)

Level-2 statistics upload. The data buffer contains the data structure x25l2stat_type (defined in zcomx25.h). Note that the values in this structure are not absolute values, but the number of occurrences of each type of condition since the last time the statistics were uploaded.

ST25REVCD (89)

X.25 and HDLC/LAP-B firmware implementation revision codes upload.

ST25LCENF (90)

Virtual Circuit ZLU ENABLE failed. Check the configuration for the VC ZLU. Pay particular attention to the poll, select, and device type fields.

ST25LCERQ (91)

VC ZLU enable requested. This indicates a zcntl() request to enable the Virtual Circuit ZLU has been issued.

ST25LCDRQ (92)

VC ZLU disable requested. This indicates a zcntl() request to disable the Virtual Circuit ZLU has been issued.

ST25BADPS (93)

Bad P(S) in received packet. This indicates that a data packet received on a VC contained an invalid sequence number in the P(S) field. This will cause the VC to be reset.

ST25BADPR (94)

Bad P(R) in received packet. This indicates that a data packet received on a VC contained an invalid sequence number in the P(R) field. This will cause the VC to be reset.

ST25RXREJ (95)

The VC received a REJECT packet. This will cause the VC to be reset.

ST25LCCTO (96)

A Virtual Circuit control timeout has occurred. This indicates that the remote end of the link has not responded to a protocol packet within the appropriate amount of time. For example, when a Clear Request packet is sent, the remote end must respond within timer T23 seconds with a Clear Confirm. This status message is sent when the timer expires without having seen a response from the remote end of the link. Typically, this will cause the VC to be reset or cleared depending on the particular protocol packet that timed out.

ST25DATTO (97)

VC data acknowledgment timeout has occurred. That is, the remote end of the link has not RR'd a sent data packet within the required T25 time. Note that if the T25 timer is disabled, this status message will not be generated. This will cause the VC to be reset.

ST25RNRTO (98)

A VC RNR timeout has occurred. This indicates that the remote end of the link sent an level 3 RNR which halted the outbound data traffic to the associated VC. If this condition is not cleared within 180 seconds, this status message is generated. This will cause the VC to be reset.

ST25LCNBF (99)

A buffer shortage has occurred for the associated Virtual Circuit.

ST25BADIC (100)

Bad Interrupt Confirm packet received on the Virtual Circuit. This indicates that an Interrupt Confirm packet was received without having sent an interrupt data packet. This will cause the VC to be reset.

ST25INTTO (101)

Interrupt packet timeout has occurred. This indicates that the remote end of the link has not confirmed our sent interrupt packet within timer T26 seconds. This will cause the VC to be reset.

ST25PKLNG (102)

VC interrupt or data packet too long. The remote end of the link sent a data packet which exceeded the X.25 level 3 packet size or an interrupt packet larger than 32 bytes for 1984 X.25 or larger than 1 byte for 1980 X.25. This will cause the VC to be reset.

ST25BADQB (103)

Inconsistent Q-bit usage detected in VC data packets. This indicates the inbound data packets of a complete packet sequence did not ALL contain the same Q-bit value. This will cause the VC to be reset.

ST25NVGFI (104)

An invalid GFI was received on the Virtual Circuit. Most likely the modulo 128 bit was set (bit 6). The ACC does not support modulo 128 sequence numbering. This will cause the VC to be reset or cleared as appropriate.

ST25ILLDB (105)

Illegal use of D-bit detected in packets for the VC. This indicates a data packet was received with the D-bit set when D-bit use has not been negotiated in the call setup (non-1980 X.25). This will cause the VC to be reset.

ST25SHMPK (106)

Invalid short data packet received on Virtual Circuit. This indicates a data packet was received with the M-bit set whose length was less than the X.25 level 3 packet size for this VC. This will cause the VC to be reset.

ST25RNRFL (107)

X.25 link port break has been issued. This is used for internal purposes.

ST25PKSHT (108)

An X.25 level three packet was received that is too short. This will cause the VC to be reset.

ST25ILINT (109)

An illegal interrupt packet was received. This will cause the VC to be reset.

Virtual Circuit Status Messages

Finally, the following X.25 specific unsolicited statuses may be received directly from a Virtual Circuit ZLU by application programs which have set themselves up as the receiver for that VC ZLU. Status codes 110 through 117 are always delivered to the appropriate applications. Status codes 118 through 127 are only delivered to an application if the CNT bit is set in the VC ZLU's option word.

ST26INTPT (110)

The VC has received an Interrupt Packet. The data buffer contains up to 32 bytes worth of interrupt data.

ST26ICONF (111)

Interrupt Confirmation packet received for this Virtual Circuit. The remote DTE has confirmed the Interrupt packet which was sent.

ST26LCENB (112)

VC ZLU has been enabled. This indicates that the VC ZLU is now in the enabled state. At this point, the ZLU is available to place a call (SVC) or for transferring data (PVC).

ST26LCTPA (113)

VC ZLU has been activated. If the virtual circuit was in a flow control state (RNR sent), then an RR has been sent and inbound data will now be accepted by this virtual circuit.

ST26LCUP (114)

The Virtual Circuit is now in the UP state. That is, it is available for data transfer operations. For SVCs this status message indicates that the call setup processing is complete. You should not attempt to send data until this status message is received. This status message also contains 16 bits of data containing the Logical Channel Number (LCN) used for this Virtual Circuit.

ST26LCDN (115)

The Virtual Circuit is now in the DOWN state. This status message usually indicates the completion of the Call Clear processing for an SVC. Note that if you have issued a Clear Request, you should not attempt to place a call on this VC until you receive this status message. This status message also contains two bytes of data:

Byte 1 =

Cause code

Byte 2 =

Diagnostic code

ST26LCTPD (116)

The VC ZLU has been deactivated. This status indicates that the VC has been placed into an inbound flow control mode. That is, an inbound data packet on this VC will result in a level 3 RNR being transmitted.

ST26LCDSB (117)

The VC ZLU has been disabled. A disabled VC ZLU may not be used to accept or place calls (SVC) or to transfer data (PVC). Any call that was established has been cleared.

ST26LCRST (118)

VC Reset Request confirmation received. This indicates that the Reset request processing is complete. Either a reset collision has occurred or the remote end of the link has confirmed the reset request.

** ST26CLRCV (119)

Inbound Call Request received on the SVC ZLU. This status is only received when the ACK bit is set to 0 in the VC ZLU's option word. The ACC X.25 subsystem will automatically attempt to send a Call Accept packet. Note that this status message is accompanied by a data buffer containing the contents of the Call packet.

** ST26CLRCF (120)

Inbound Call Request received on the SVC ZLU requiring application acknowledgment. This status is only received when the ACK bit is set to 1 in the VC ZLU's option word. If the application does not acknowledge the inbound call (using zx25callacc or zx25callrej) within 60 seconds, the call will be automatically cleared by the ACC X.25 subsystem. Note that this status message is accompanied by a data buffer containing the contents of the Call packet.

** ST26LCRSR (121)

Reset Indication received on VC. If the RSET bit is set to 1 in the VC ZLU's option word, then the application is required to confirm the reset within 60 seconds by calling zx25reset_conf(). If the RSET bit is set to 0, then the ACC X.25 subsystem will automatically issue a Reset Confirmation packet on the VC. This status is also accompanied by data structure containing the reset cause and diagnostic codes.

** ST26LCCLR (122)

Clear Request packet received on VC. This indicates that the Call Clear processing has begun. The application will receive a VC DOWN (115) status message when the clear processing is complete. This status message also has an associated data buffer containing the Clear packet data.

** ST26LCCLC (123)

Call Accepted packet received on VC. This indicates that an outbound call has been accepted by the destination. This status does not indicate the call is now established. The application should wait for the VC UP status message. Status 123 also has an associated data buffer which contains the Call Accept packet information.

** ST26LCRSS (124)

Local VC Reset initiated due to protocol exception condition. This indicates that the ACC X.25 subsystem has sent a Reset Request as the result of an exception condition. For example, if an Interrupt packet that was sent is not confirmed within T26 seconds.

ZxRESET_TO(125)

VC Reset Request has timed out. That is, the remote end of the link has not replied with a Reset Confirmation packet within the allowed amount of time (T22 timer).

**ZxCLR_CONF(126)

Clear Confirmation packet received on VC. The status message data buffer contains the clear confirmation packet data.

The status code symbolic names are available to C application programs by including the file /opt/acc/include/zcom/zx25status.h.

The statuses marked "**" are received by the application with the packet data. These statuses are only received if the "notify application" option is enabled for the virtual circuit terminal. The packet data layout is described in /opt/acc/include/zcom/zcomx25.h for C as described in the following diagrams.

The routine X25STAT may be called to convert any X.25 status codes to a description. This is call compatible and may be used as a direct replacement for the ZCOM Status call which is documented in the ACC Programmer's Reference Guide.

The C structure for the packet data layout is as follows:

#define X25PKDATALEN 512     /* Max len of facility + user data */

typedef struct {
uint16 x25pkdbit; /* Deliv. confm bit: ZX25_TRUE, ZX25_FALSE */
uint16 x25pkcaus; /* Cause code */
uint16 x25pkdiag; /* Diagnostic code */
uint16 x25pkdflg; /* Use call addr: ZX25_TRUE, ZX25_FALSE */
uint8 x25pkcald[8]; /* Called X.121 address */
uint16 x25pkgflg; /* Use calling addr: ZX25_TRUE, ZX25_FALSE */
uint8 x25pkclng[8]; /* Calling X.121 address */
uint16 x25pkflen; /* Facility data byte length */
uint16 x25pkulen; /* User data byte length */
char x25pkdata[X25PKDATALEN]; /* Facility and user data */
} x25pkform_type

Figure 4-1 Packet Data Layout

Packet Data Layout
Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2000 Hewlett-Packard Development Company, L.P.