This chapter contains the following sections:
This chapter describes the data structures used by NLI primitives to specify X.25 addresses and facilities. These data structures are defined in the file <sys/snet/x25_proto.h>. (This file is included in the subsystem eoe2.sw.dlpi, which is a prerequisite for IRIS SX.25.)
In call requests and responses, it is usually necessary to specify the X.25 addresses associated with the connection—the called, calling and responding addresses. A common structure is used for these addresses. The addressing format used by this structure provides the following information:
the subnetwork on which outgoing Connect Requests are to be sent and on which Connect Indications arrive
NSAPs (Network Service Access Points) and SNPAs (Subnetwork Point of Attachments), or DTE (Data Terminal Equipment) addresses and LSAPs (Link Service Access Points)
options in encoding of addresses (NSAPs)
#define NSAPMAXSIZE 20 struct xaddrf { unsigned long sn_id; unsigned char aflags; struct lsapformat DTE_MAC; unsigned char nsap_len; unsigned char NSAP[NSAPMAXSIZE]; } |
The fields in this structure are:
sn_id | The subnetwork identifier, selected by the system administrator. It identifies the subnetwork required for a Connect Request, or on which a Connect Indication arrived. The sn_id field holds a representation of the one byte string subnetwork identifier as an unsigned long. The X.25 library routine snidtox25 can be used to convert the character subnetwork identifier to an unsigned long. | |||||||||
aflags | Specifies the options required (or used) by the subnetwork to encode and interpret addresses. When there is a value in the NSAP field, aflags takes one of the three values listed in Table 2-1. When the NSAP field is empty, aflags has the value 0. See the x25addr(5), stox25(3N), x25tos(3N), and getxhostent(3N) reference pages for details about the X.25 address format.
| |||||||||
DTE_MAC | Holds the DTE address, the MAC+SAP (medium access control+service access point) address or the LCI. This is binary. The lsapformat structure is described below. | |||||||||
nsap_len | This indicates the length of the NSAP, if any (and where appropriate), in semi-octets. | |||||||||
NSAP | This carries the NSAP or address extension (see field aflags) when present as indicated by nsap_len. This is binary. |
The format of the lsapformat structure is as follows:
#define LSAPMAXSIZE 9 struct lsapformat { unsigned char lsap_len; unsigned char lsap_add[LSAPMAXSIZE]; }; |
The fields in this structure are defined as follows:
Negotiable X.25 facilities are supported by the PLP driver. This section describes the request and negotiation of these facilities, and the data structures used by the NLI primitives. Refer to the SX.25 Administrator's Guide for details on the options selected for a particular subnetwork. The facility set can be broken down into two main groups—those required for Connection-Oriented Network Service (CONS) support and those for non-OSI procedures (X.29, for example).
![]() | Note: CONS can also use the non-OSI procedures. |
The CONS quality of service (QOS) parameters supported are the following:
Throughput Class
Minimum Throughput Class
Target Transit Delay
Maximum Acceptable Transit Delay
Use of Expedited Data
Protection
Priority
Receipt Acknowledgment
CONS-related quality of service parameters are defined in this structure:
The fields in this structure are defined as follows:
Throughput Class |
| |||||||||||||
Minimum Throughput Class |
| |||||||||||||
Target Transit Delay |
| |||||||||||||
Maximum Acceptable Transit Delay |
| |||||||||||||
Priority | The reqpriority field is used to request/indicate priority on a connection. The mandatory field prty_data contains the 8-bit value for the priority of data on the connection. The reqprtygain and reqprtykeep fields can be optionally set to indicate that the fields prty_gain and prty_keep contain, respectively, the 8-bit values for the priority to gain and keep a connection. On N-CONNECT requests, the calling NS_user can also specify a lowest acceptable value for priority. The fields reqlowprtydata, reqlowprtygain, and reqlowprtykeep can be set to indicate that the fields lowprtydata, lowprtygain, and lowprtykeep contain, respectively, the 8-bit values for the lowest acceptable priority of data on connection, to gain a connection, and to keep a connection. | |||||||||||||
Protection | If the protection negotiation parameter is selected, the protection_type is nonzero and indicates the type of protection required. In this case the mandatory fields prot_len and protection contain, respectively, the length and value for the target protection. On N-CONNECT requests, the calling NS_user can optionally specify a lowest acceptable protection. In this case, the fields lowprot_len and lowprotection contain, respectively, the length and value for the lowest acceptable protection. Values for protection_type are listed in Table 2-2. Table 2-2. protection_type Values
| |||||||||||||
Use of Expedited Data |
For incoming or outgoing non-CONS calls (denoted by the CONS_call flag set to 0), Expedited Data negotiation is not required—interrupt data is always available in X.25. This means that this field is ignored on Connect Requests and Responses for non-CONS calls. | |||||||||||||
Receipt Acknowledgment Service |
In the case of receipt confirmation by the remote DTE, no acknowledgments are expected or given over the X.25 interface. In the case of receipt confirmation by the remote application, there is a one-to-one correspondence between D-bit data and acknowledgments, with one data acknowledgment being received or sent for each D-bit data packet sent or received over the X.25 interface. |
For those NLI applications that require them, the non-OSI facilities supported are as follows:
Facilities and QOS parameters are defined in the following structure:
The fields in this structure are:
Fast Select | For non-OSI services like X.29, if the X.25 facility fast select is to be requested or indicated, the field fastselreq is nonzero. | |||||||||||||||||||||||
Fast Select with Restricted Response |
| |||||||||||||||||||||||
Reverse Charging |
| |||||||||||||||||||||||
Packet Concatenation, Packet Size, and Window Size Negotiation |
The field is defined as follows:
This field is used for two reasons:
| |||||||||||||||||||||||
Packet Size | If the fields locpacket and rempacket are nonzero, locpacket contains indicated or negotiated encoded packet sizes for the direction local-to-remote and rempacket contains indicated or negotiated encoded packet sizes for the direction remote-to-local.
| |||||||||||||||||||||||
Window Size | If the fields locwsize and remwsize are nonzero, they contain indicated or negotiated window sizes for the directions local-to-remote and remote-to-local, respectively.
| |||||||||||||||||||||||
Packet Concatenation |
| |||||||||||||||||||||||
Network User Identification |
| |||||||||||||||||||||||
RPOA Selection |
For an X.25(80) network, this is restricted to one RPOA of length 4 semi-octets. The basic format encoding is used for the RPOA selected. For an X.25(84) or X.25(88) network, one or more RPOAs can be selected. The extended format encoding is used only if the number of RPOAs selected is greater than 1. The maximum number of RPOAs selected is restricted to 4. Valid values for rpoa_len are 0, 4, 8, 12, and 16. | |||||||||||||||||||||||
Closed User Groups |
| |||||||||||||||||||||||
Charging Information |
A zero length field means no charging information is supplied for the relevant charging category. | |||||||||||||||||||||||
Called Address Modification |
| |||||||||||||||||||||||
Call Redirection |
| |||||||||||||||||||||||
Call Deflection |
| |||||||||||||||||||||||
Programmable X.25 Facilities |
The fields x_fac_len, cg_fac_len, and cd_fac_len denote the lengths of the facilities in the field fac_field relating to, respectively, X.25 facilities, non-X.25 facilities for the calling network, and non-X.25 facilities for the called network. If a length field is zero, this denotes that no facilities are supplied for the corresponding facility category.
|