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:
|
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.