DLC_ENABLE_SAP ioctl Operation for DLC

The DLC_ENABLE_SAP ioctl operation is selectable through the fp_ioctl kernel service or the ioctl subroutine. It can be called from the process environment only.

The following parameter block enables a service access point (SAP):

#define DLC_MAX_NAME   20
#define DLC_MAX_GSAPS   7
#define DLC_MAX_ADDR   8

#define  DLC_ESAP_NTWK   0x40000000
#define  DLC_ESAP_LINK   0x20000000
#define  DLC_ESAP_PHYC   0x10000000
#define  DLC_ESAP_ANSW   0x08000000
#define  DLC_ESAP_ADDR   0x04000000

struct dlc_esap_arg
   {

   __ulong32_t  gdlc_sap_corr;
   __ulong32_t  user_sap_corr;
   __ulong32_t  len_func_addr_mask;
   uchar_t  func_addr_mask [DLC_MAX_ADDR];

   __ulong32_t  len_grp_addr;
   uchar_t  grp_addr [DLC_MAX_ADDR];
   __ulong32_t  max_ls;
   __ulong32_t  flags;
   __ulong32_t  len_laddr_name;

   u_char_t  laddr_name [DLC_MAX_NAME]; 
   u_char_t  num_grp_saps;
   u_char_t  grp_sap [DLC_MAX_GSAPS];
   u_char_t res1[3];
   u_char_t  local_sap;
   };

The fields of this ioctl operation are:

Field Description
gdlc_sap_corr Specifies the generic data link control's (GDLC) SAP identifier that is returned to the user. This correlator must accompany all subsequent commands associated with this SAP.
user_sap_corr Specifies an identifier or correlator the user wishes to have returned on all SAP results from GDLC. It allows the user of multiple SAPs to choose a correlator to route the SAP-specific results.
len_func_addr_mask Specifies the byte length of the following functional address mask. This field must be set to 0 if no functional address is required. Length values of 0 through 8 are supported.
func_addr_mask Specifies the functional address mask to be ORed with the functional address on the adapter. This address mask allows packets that are destined for specified functions to be received by the local adapter. See individual DLC interface documentation to determine the format and length of this field.
Note: GDLC does not distinguish whether a received packet was accepted by the adapter due to a pre-set network, group, or functional address. If the SAP address matches and the packet is otherwise valid (no protocol errors, for instance), the received packet is passed to the user.
len_grp_addr Specifies the byte length of the following group address. This field must be set to 0 (zero) if no group address is required. Length values of 0 through 8 are supported.
grp_addr Specifies the group address value to be written to the adapter. It allows packets that are destined for a specific group to be received by the local adapter.
Note: Most adapters allow only one group address to be active at a time. If this field is nonzero and the adapter rejects the group address because it is already in use, the enable SAP call fails with an appropriate error code.
max_ls Specifies the maximum number of link stations (LSs) allowed to operate concurrently on a particular SAP. The protocol used determines the values for this field.
flags Supports the following flags of the DLC_ENABLE_SAP ioctl operation:
DLC_ESAP_NTWK
Teleprocessing network type:

0 = Switched (default)

1 = Leased

DLC_ESAP_LINK
Teleprocessing link type:

0 = Point to point (default)

1 = Multipoint

DLC_ESAP_PHYC
Physical network call (teleprocessing):

0 = Listen for incoming call

1 = Initiate call

DLC_ESAP_ADDR
Local address or name indicator. Specifies whether the local address or name field contains an address or a name:

0 = Local name specified (default)

1 = Local address specified

DLC_ESAP_ANSW
Teleprocessing autocall or autoanswer:

0 = Manual call and answer (default)

1 = Automatic call and answer

len_laddr_name Specifies the byte length of the following local address or name. Length values of 1 through 20 are supported.
laddr_name Contains the unique network name or address of the user local SAP as indicated by the DLC_ESAP_ADDR flag. Some protocols allow the local SAP to be identified by name (for example, Name-Discovery Services) and others by address (for example, Address Resolve Procedures). Other protocols such as Synchronous Data Link Control (SDLC) do not identify the local SAP. Check the individual DLC's usage of this field for the protocol you are operating.
num_grp_saps Specifies the number of group SAPs to which the user's local SAP responds. If no group SAPs are needed, this field must contain a 0. Up to seven group SAPs can be specified.
grp_sap Contains the specific group SAP values to which the user local SAP responds (seven maximum).
local_sap Specifies the local SAP address opened. Receive packets with this LSAP value indicated in the destination SAP field are routed to the LSs opened under this particular SAP.

The protocol-specific data area allows parameters to be defined by the specific GDLC device manager, such as X.21 call-progress signals or Smartmodem call-establishment data. This optional data area must directly follow (or append to) the end of the dlc_esap_arg structure.