DLC_START_LS ioctl Operation for DLC

The DLC_START_LS 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 starts a link station (LS) on a particular SAP as a caller or listener:

#define DLC_MAX_DIAG   16   /* the maximum string of chars */
      /* in the diag name */
struct dlc_sls_arg
   {

   __ulong32_t  gdlc_ls_corr;   /* GDLC User link station correlator */
   u_char_t  ls_diag[DLC_MAX_DIAG]; /* the char name of the ls */
   __ulong32_t  gdlc_sap_corr;   /* GDLC SAP correlator */
   __ulong32_t  user_ls_corr;   /* User's SAP correlator */
   __ulong32_t  flags;   /* Start Link Station flags */
   __ulong32_t  trace_chan;   /* Trace Channel (rc of trcstart)*/
   __ulong32_t  len_raddr_name;   /* Length of the remote name/addr*/
   u_char_t  raddr_name[DLC_MAX_NAME]; /* The Remote addr/name */

   __ulong32_t  maxif;   /* Maximum number of bytes in an */
      /* I-field */
   __ulong32_t  rcv_wind;   /* Maximum size of receive window */
   __ulong32_t  xmit_wind;   /* Maximum size of transmit window */
   u_char_t  rsap;   /* Remote SAP value */
   u_char_t  rsap_low;   /* Remote SAP low range value */
   u_char_t  rsap_high;   /* Remote SAP high range value */
   u_char_t res1;   /* Reserved */

   __ulong32_t  max_repoll;   /* Maximum Repoll count */
   __ulong32_t  repoll_time;   /* Repoll timeout value */
   __ulong32_t  ack_time;   /* Time to delay trans of an ack */
   __ulong32_t  inact_time;   /* Time before inactivity times out */
   __ulong32_t  force_time;   /* Time before a forced disconnect */
   };

The fields of this ioctl operation are:

Field Description
gdlc_ls_corr Contains GDLC LS correlator. The GDLC LS identifier returned to the user as soon as resources are determined to be available. This correlator must accompany all commands associated with this LS.
ls_diag Contains LS diagnostic tag. Any ASCII 1 to 16-character name written to GDLC trace, error log, and status entries for LS identification. (The end-of-name delimiter is the AIX® null character.)
gdlc_sap_corr Contains GDLC LS correlator. Specifies the SAP with which to associate this link station. This field must contain the same correlator value passed to the user in the gdlc_sap_corr field by GDLC when the SAP was enabled.
user_ls_corr Contains user LS correlator. Specifies an identifier or correlator that the user wishes to have returned on all LS results and data from GDLC. It allows the user of multiple link stations to route the station-specific results based on a correlator.
Field Description
flags Contains common LS flags. The following flags are supported:
DLC_TRCO
Trace control on:

0 = Disable link trace.

1 = Enable link trace.

DLC_TRCL
Trace control long:

0 = Link trace entries are short (80 bytes).

1 = Link trace entries are long (full packet).

DLC_SLS_STAT
Station type for SDLC:

0 = Secondary (default)

1 = Primary

DLC_SLS_NEGO
Negotiate station type for SDLC:

0 = No (default)

1 = Yes

DLC_SLS_HOLD
Hold link on inactivity:

0 = No (default). Terminate the LS.

1 = Yes, hold it active.

DLC_SLS_LSVC
LS virtual call:

0 = Listen for incoming call.

1 = Initiate call.

DLC_SLS_ADDR
Address indicator:

0 = Remote is identified by name (discovery).

1 = Remote is identified by address (resolve, SDLC).

Field Description
trace_chan Specifies the channel number obtained from the trcstart subroutine. This field is valid only if the DLC_TRCO indicator is set active.
len_raddr_name Specifies the byte length of the remote address or name. This field must be set to 0 if no remote address or name is required to start the LS. Length values of 0 through 20 are supported.
raddr_name Contains the unique network address of the remote node if the DLC_SLS_ADDR indicator is set active. Contains the unique network name of the remote node if the DLC_SLS_ADDR indicator is reset. Addresses are entered in hexadecimal notation, and names are entered in character notation. This field is only valid if the previous length field is nonzero.
maxif Specifies the maximum number of I-field bytes that can be in one packet. This value is reduced by GDLC if the device handler buffer sizes are too small to hold the maximum I-field specified here. The resultant size is returned from GDLC when the link station has been started.
rcv_wind The receive window specifies the maximum number of sequentially numbered receive I-frames the local station can accept before sending an acknowledgment.
xmit_wind Specifies the transmit window and the maximum number of sequentially numbered transmitted I-frames that can be outstanding at any time.
rsap Specifies the remote SAP address being called. This field is valid only if the DLC_SLS_LSVC indicator or the DLC_SLS_ADDR indicator is set active.
rsap_low Specifies the lowest value in the range of remote SAP address values that the local SAP responds to when listening for a remote-initiated attachment. This value cannot be the null SAP (0x00) or the discovery SAP (0xFC), and must have the low-order bit set to 0 (B`nnnnnnn0') to indicate an individual address.
rsap_high Specifies the highest value in the range of remote SAP address values that the local SAP responds to, when listening for a remote-initiated attachment. This value cannot be the null SAP (0x00) or the discovery SAP (0xFC), and must have the low-order bit set to 0 (B`nnnnnnn0') to indicate an individual address.
max_repoll Specifies the maximum number of retries for an unacknowledged command frame, or in the case of an I-frame timeout, the number of times the nonresponding remote link station is polled with a supervisory command frame.
repoll_time Contains the timeout value (in increments defined by the specific GDLC) used to specify the amount of time allowed prior to retransmitting an unacknowledged command frame.
ack_time Contains the timeout value (in increments defined by the specific GDLC) used to specify the amount of time to delay the transmission of an acknowledgment for a received I-frame.
inact_time Contains the timeout value (in increments of 1 second) used to specify the maximum amount of time allowed before receive inactivity returns an error.
force_time Contains the timeout value (in increments of 1 second) specifying the period to wait for a normal disconnection. Once the timeout occurs, the disconnection is forced and the link station is halted.

The protocol-specific data area allows parameters to be defined by a specific GDLC device manager, such as Token-Ring dynamic window increment or SDLC primary slow poll. This optional data area must directly follow (or append to) the end of the dlc_sls_arg structure.