HPlogo X25/9000: X.25/9000 Programmer's Guide > Chapter 2 X.25 Addressing

Address Space Conflicts

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

The X.25 subsystem's programming access prevents any two sockets from binding to the same address structure. When a bind() call is made, the subsystem checks the specified address against addresses that are already associated with the socket. The bind() call is rejected if there is a conflict in the space allocation of components in the address structure.

The address structure is made up of three components:

  • Interface name—the name of the interface or port

  • Address/subaddress—the X.121 addresses

  • PID—the Protocol Identification number

Address conflicts occur with bind() calls when the specified address structure occupies or overlaps into an address region that has already been assigned to another socket. In this instance the system returns one of two errors:

  • EADDRNOTAVAIL—is returned when all of the addresses specified in the bind() call include all of the addresses specified in a previously bound socket.

  • EADDRINUSE—is returned when the addresses specified in the bind include some of the addresses specified in a previously bound socket.

Table 2-4 Addressing Conflict Errors

Previous Bind

Current Bind

errno value

123*

12*

EADDRNOTAVAIL

12*

123*

EADDRINUSE

1?3*

123*

EADDRINUSE

123*

1?2?

EADDRNOTAVAIL

 

How to Avoid Address Conflicts

Avoid wildcard addresses with "*" and be cautious of all wildcard addressing. Avoid wildcards that specify large address spaces when specifying subaddresses. Specify an address space of exactly one address when specifying non-wildcard addresses. Each question mark increases the address space by a factor of 10; an asterisk increases the address space by several orders of magnitude.

The best way to avoid conflicts is to coordinate the use of address space with other servers, and write down the addresses that are in use. Check this list whenever a new server is installed. The first entry in the list should be for the x25server process which uses protocol ID 0xFCAA0A07.