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