Developing applications over IPX/SPX using TLI

The Service Advertising Protocol daemon SAPD

When the Service Advertising Protocol daemon (SAPD) is initialized by the NetWare Protocol Stack Daemon (NPSD), SAPD binds to the IPX socket 0x0452, and sends a request for all SAP agents to send their server information. SAPD then builds a Server Information table from the returned packets.

Some of the more pertinent fields in the Server Information table of the SAP Agent are:

Server name
Contains the name of a server that provides a service (such as file, printing, database management, archiving).

Server address
Contains the server's full IPX address: network number, node number, socket number.

The network number is the number associated with the cabling system the server is attached to. For SCO IPX/SPX file servers or application servers loaded on such file servers, the network number is the file server's internal network number.

The node number is the station number of the network board installed in the server. For SCO IPX/SPX file servers, this number is always set to 0x000000000001. The SCO IPX/SPX server is the only node on the network (the network is the server's internal network number).

The socket number is the number of the socket that the server binds to when it is initialized and is ready to provide service by listening on this socket.

Server type
Contains the object type of the service. See ``Novell object types'' for more about Novell object types.

Hops to server
Contains the number of routers that must be crossed to access the server.

Time since change
Used to remove servers that go down unexpectedly without sending a "going down" packet. Every time information is received concerning a server, the field is reset. The field decrements every two seconds and times out after three minutes.

If no server information is received within the three minutes for a particular server, the SAP agent presumes that the server is down and removes the server from the table. SAPD then broadcasts a SAP packet to indicate that the server is down.

SAPD handles the ``Time since change'' field in a slightly different way from other NetWare SAP agents. SAPD's timeout interval for the ``Time since change'' field is tunable in a header file. The current default is four minutes.

Every minute, SAPD sends local broadcasts of all its server information. When a new server sends out a SAP packet saying that it is available, SAPD verifies that this server is not in its Server Information table. SAPD then adds this server to its Server Information table and echoes this information to all connected networks.

When a SCO IPX/SPX server is initialized, the server sends a special SAP packet to SAPD. This special SAP packet tells SAPD which socket to use to inform the SCO IPX/SPX server about new server information.

Next topic: Configuring and testing SAPD
Previous topic: SAP services

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003