The description given here is limited to the IPX protocol
and the enhanced SPX (or SPXII) protocol.
All references to the SPX protocol refer to this version
unless specifically noted.
In compliance with the X/Open Interface Adoption Criteria,
this protocol is obtainable from multiple sources.
Header | Prefix |
---|---|
<xti_ipx.h> | t_ipx |
If the header xti_ipx.h is included, macros with the following prefixes may be defined. After the last inclusion of xti_ipx.h an application may use identifiers with the following prefixes for its own purpose, provided their use is preceded by an #undef of the macro.
Header | Prefix |
---|---|
<xti_ipx.h> | T_IPX_ |
Header | Prefix |
---|---|
<xti_spx.h> | t_spx, T_SPX |
versionNumber |
If the header xti_spx.h is included, macros with the prefixes may be defined. After the last inclusion of xti_spx.h an application may use identifiers with the following prefixes for its own purpose, provided there use is preceded by an #undef of the macro.
Header | Prefix |
---|---|
<xti_spx.h> | T_SPX_ |
-
-
typedef struct t_ipxOptions {
unsigned short ipx_checksum /* Checksum */
unsigned char ipx_packet_type /* IPX Packet type */
} t_ipxOpts_t;
This option may only be manipulated using the
Other options may be defined in the future.
At least the following packet types are known to IPX:
-
-
typedef struct t_spx2_options {
unsigned int versionNumber;
unsigned int spxIIOptionNegotiate;
unsigned int spxIIRetryCount;
unsigned int spxIIMinimumRetryDelay;
unsigned int spxIIMaximumRetryDelta;
unsigned int spxIIWatchdogTimeout;
unsigned int spxIIConnectionTimeout;
unsigned int spxIILocalWindowSize;
unsigned int spxIIRemoteWindowSize;
unsigned int spxIIConnectionID;
unsigned int spxIIInboundPacketSize;
unsigned int spxIIOutboundPacketSize;
unsigned int spxIISessionFlags;
} T_SPX2_OPTIONS;
An application passing a t_opthdr structure followed by a T_SPX2_OPTIONS structure to a function that can support options information will get information about all legal options on each call.
Each of this structure's members is described below.
Flag | Value | Description |
---|---|---|
T_SPX_SF_NONE | 0x00 | Options off |
T_SPX_SF_IPX_CHECKSUM | 0x01 | Packet checksums on |
T_SPX_SF_SPX2_SESSION | 0x02 | Compatibility flag |
The T_SPX_SF_NONE and T_SPX_SF_IPX_CHECKSUM flags are read/write, and accessible through the
IPX and SPX support static and dynamic port assignment. If the application does not wish to chose a port, it sets req to NULL or req->addr.len to 0. In this case, the provider assigns a dynamic port in the range 0x4000 to 0x7fff.
If the application wishes to bind to a specific port (that is, a static port), req->addr.buf must point to an addressing structure.
A process
without sufficient privilege can only request a port in
the range 0x8000 to 0xffff. If the request is for a port outside
the static port range,
For SPX:
SPX allows only a single transport endpoint to be bound to a port.
If a requested port is already bound to another endpoint,
Parameters | Before call | After call |
---|---|---|
info->addr | / | x |
info->options | / | x |
info->tsdu | / | x (1) |
info->etsdu | / | T_INVALID (-2) |
info->connect | / | T_INVALID (-2) |
info->discon | / | T_INVALID (-2) |
info->servtype | / | T_CLTS |
info->flags | / | 0 |
The default characteristics returned by
Parameters | Before call | After call |
---|---|---|
info->addr | / | x |
info->options | / | x |
info->tsdu | / | T_INFINITE (-1) |
info->etsdu | / | T_INVALID (-2) |
info->connect | / | T_INVALID (-2) |
info->discon | / | T_INVALID (-2) |
info->servtype | / | T_COTS_ORD |
info->flags | / | 0 |
An option buffer, as described in Section K.3.2, "SPX-level Options" will be passed to the user (unless call->opt.maxlen is zero.
Similarly, the default characteristics returned by
No IPX options are currently available through the
For SPX:
Options may be set or retrieved using the
SPX supports the standard options buffer using the t_opthdr structure. The t_opthdr structure is followed by a T_SPX2_OPTIONS structure, as described in Section K.3, Options.
SPX supports options that may be examined and negotiated
with the
SPX allows logical units of data to be unlimited in length.
If the SPX watchdog (see
Section K.3.2, "SPX-level Options"
determines that the remote transport
endoint is no longer participating in the connection, the SPX watchdog
generates a disconnect indication which causes
On return, the discon->reason member is set to one of the following:
On return from the function, unitdata->addr.buf points to the address information for the remote endpoint, and unitdata->opt.buf points to an options buffer as described in Section K.3.1, "IPX-level Options".
If a packet received by a
To send any other packet type, unitdata->opt must reference an options buffer as defined in Section K.3.1. "IPX-level Options". The IPX packet type must be defined. A checksum will be generated if t_ipx_checksum" is set to T_IPX_CHECKSUM_TRIGGER.
Contents | Next section | Index |