[ Previous | Next | Contents | Search ]
AIXLink/X.25 1.1 for AIX: Guide and Reference

List of X.25 Programming References

This list, for programs using the COMIO emulation port, includes:


The list of X.25 subroutines is organized by function:

Initialization and Termination Subroutines

The subroutines that begin and end X.25 sessions are:

                          Initializes the API for a particular X.25 port.
                          Terminates the API for a particular X.25 port.

Network Subroutines

The network subroutines that establish calls, transmit data, clear calls, and allocate network resources are:

                          Acknowledges data received with the D-bit set.
                          Sets up a switched virtual circuit and establishes the call.
                          Accepts an incoming call.
                             Clears a call.
                          Starts listening for incoming calls.
                          Turns off listening.
                          Sends an interrupt.
                             Allocates a permanent virtual circuit.
                          Frees a permanent virtual circuit.
                          Receives a message and indicates the message type.
                          Resynchronizes communications.
                          Sends a reset-confirmation message.
                          Sends data.

Counter Subroutines

To monitor and control what is happening during a call, your application can use these counters supplied by the API:

                          Gets a counter.
                          Removes a counter.
                          Gets the current value of a counter.
                          Suspends the current process until one of the counters has exceeded a specified value, usually 0.

Management Subroutines

These subroutines can be used to control and monitor X.25 links:

                          Returns information about some of the attributes of an X.25 adapter.
                          Returns information about a virtual circuit.

API Structures

The list of X.25 API structures is organized by function:

Miscellaneous Structures

                          Used to indicate the name of the X.25 port.
                             Used to indicate the type of message being received.
                          Used to store the counter values and identifiers for use with the x25_ctr_wait structure.

Structures Used to Establish Calls and Transfer Data

                             Used for calls made and accepted.
                             Used for data transferred during a call.
                             Used for information about optional facilities being used.
                          Used to indicate the logical channel number and port assigned to a PVC.

Structures Used to Clear, Interrupt, and Reset Calls

                          Used for calls being cleared.
                          Used for data sent or received in an interrupt packet.
                             Used for data sent or received in a reset-request packet.

Structures Used to Manage X.25 Communications

                          Used for information about a virtual circuit.
                          Used for information about an X.25 adapter.
cb_link_stats_struct, x25_query_data, and x25_stats
                          Used for statistics for an X.25 port.

API Error Codes

The list of X.25 API error codes is organized by function:

X.25-Specific Error Codes

For X.25-specific error conditions, the x25_errno flag is set to one of the following values:

X25ACKREQ One or more packets require acknowledgement. Issue the x25_ack subroutine before continuing.
X25AUTH The calling application does not have system permission to control the status of the link.
X25AUTHCTR The application does not have permission to remove this counter because it did not issue the corresponding the x25_ctr_get subroutine.
X25AUTHLISTEN The application cannot listen to this name, because the corresponding entry in the routing list has a user name that excludes the user running the application. Use another routing list name, or change the user name in the routing list entry.
X25BADCONNID The connection identifier is invalid.
X25BADDEVICE The X.25 port name is invalid.
X25BADID The connection identifier or listen identifier is invalid.
X25BADLISTENID The listen identifier is invalid.
X25CALLED The called address is invalid. Check that the address is correct and is a null-terminated string.
X25CALLING The calling address is invalid. Check that the address is correct and is a null-terminated string.
X25CTRUSE The counter has a nonzero value.
X25INIT X.25 is already initialized for this X.25 port, so it cannot be initialized again.
X25INVCTR The specified counter does not exist. (In the case of the x25_ctr_wait subroutine, the counter is one of an array of counters.)
X25INVFAC An optional facility requested is invalid. Check the structure cb_fac_struct.
X25INVMON The monitoring mode is invalid.
X25LINKUP The X.25 port is already connected.
X25LINKUSE The X.25 port still has virtual circuits established; it may still be in use. Either free all virtual circuits or disconnect the port using the override.
X25LONG The parameter is too long. Check each of the parameters for this subroutine.
X25MAXDEVICE Attempts have been made to connect more X.25 ports than are available. Check the smit configuration to see how many ports are available.
X25MONITOR X.25 traffic on this X.25 port is already being monitored by another application. The other application must stop monitoring before any other application can start monitoring.
X25NAMEUSED Calls for this name are already being listened for.
X25NOACKREQ No packets currently require acknowledgment.
X25NOCARD The X.25 adapter is either not installed or not functioning.
X25NOCTRS No counters are available.
X25NODATA No data has arrived for this connection identifier. Issue the x25_ctr_wait subroutine to be notified when data arrives.
X25NODEVICE    The X.25 device driver is either not installed or not functioning.
X25NOLINK The X.25 port is not connected. Issue the x25_link_connect subroutine, or use the xmanage command to connect it.
X25NONAME The name is not in the routing list. Add the name or use one that is already in the list.
X25NOSUCHLINK The X.25 port does not exist. Check the smit configuration.
X25NOTINIT The application has not initialized X.25 communications. Issue the x25_init subroutine.
X25NOTPVC This is not defined as a permanent virtual circuit (PVC). Check the smit configuration.
X25PROTOCOL An X.25 protocol error occurred.
X25PVCUSED This permanent virtual circuit (PVC) is already allocated to another application. The other application must free the PVC before it can be used.
X25RESETCLEAR The call was reset or cleared during processing. Issue the x25_receive subroutine to obtain the reset-indication or clear-indication packet. Then issue the x25_reset_confirm or x25_clear_confirm subroutine, as necessary.
X25SYSERR An error occurred that was not an X.25 error. Check the value of errno.
X25TABLE The routing list cannot be updated because the xroute command is using it. Try again after xroute command has completed.
X25TIMEOUT A time-out problem occurred.
X25TOOMANYVCS No virtual circuits are free on the listed X.25 ports.
X25TRUNCTX The packet size is too big for internal buffers, so data cannot be sent.

System Error Codes

For non-X.25-specific error conditions, the x25_errno flag is set to X25SYSERR , and the errno global variable is set to one of the following values:

EFAULT Indicates a bad address pointer.
EINTR A signal was caught during the call.
EIO An I/O error occurred.
ENOMEM Could not allocate memory for device information.
ENOSPC There are no buffers available in the pool.
EPERM Calling application does not have sufficient authorization.

Header Files

x25sdefs.h Contains the structures used by the X.25 application programming interface (API).

Example Programs

pvcrcv Receives a call using a permanent virtual circuit.
pvcxmit Sends a call using a permanent virtual circuit.
svcrcv Receives a call using a switched virtual circuit.
svcxmit Sends a call using a switched virtual circuit.

[ Previous | Next | Contents | Search ]