DEFINE_DSPU_TEMPLATE


The Communications Server icon lets you know that there is a change in the way things operate.
This verb applies only to Communications Server.
This verb is used for PU concentration. When PU concentration is used, downstream LUs are able to communicate with an upstream host. To do this, Communications Server maps each downstream LU to a dependent local LU, referred to as the host LU. DEFINE_DSPU_TEMPLATE defines a template for the downstream LUs which are present on a group of downstream workstations. This template is used to put in place definitions for the downstream LUs when a workstation connects into Communications Server over an implicit link (one not previously defined). These templates are referred to by the implicit_dspu_template field on the DEFINE_PORT verb. DEFINE_DSPU_TEMPLATE can either be used to define a new template or to modify an existing template (although the existing instances of the modified template is not affected).

VCB Structure

typedef struct define_dspu_template
{
        unsigned short  opcode;              /* verb operation code       */
        unsigned char   attributes;          /* verb attributes           */
        unsigned char   format;              /* format                    */
        unsigned short  primary_rc;          /* primary return code       */
        unsigned long   secondary_rc;        /* secondary return code     */
        unsigned char   template_name[8];    /* name of template          */
        unsigned char   description;         /* resource description      */
        unsigned char   modify_template;     /* Modify existing template? */
        unsigned char   reserv1[11];         /* reserved                  */
        unsigned short  max_instance;        /* Max active template       */
                                             /* instances                 */
        unsigned short  num_of_dslu_templates;
                                             /* number of DSLU templates  */
} DEFINE_DSPU_TEMPLATE;
typedef struct dslu_template
{
        unsigned char   min_nau;             /* min NAU address in range  */
        unsigned char   max_nau;             /* max NAU address in range  */
        unsigned char   allow_timeout;       /* Allow timeout of host LU? */
        unsigned char   delayed_logon;       /* Allow delayed logon to    */
                                             /* host LU                   */
        unsigned char   reserv1[8];          /* reserved                  */
        unsigned char   host_lu[8];          /* host LU or pool name      */
} DSLU_TEMPLATE;

Supplied Parameters

The application supplies the following parameters:
opcode
AP_DEFINE_DSPU_TEMPLATE
attributes
The attributes of the verb. This field is a bit field. The first bit contains the visibility of the resource to be defined and corresponds to one of the following:

AP_EXTERNALLY_VISIBLE
AP_INTERNALLY_VISIBLE

format
Identifies the format of the VCB. Set this field to zero to specify the version of the VCB listed above.
template_name
Name of the DSPU template. (This corresponds to the name specified in the implicit_dspu_template field on PORT_DEF_DATA). This is an 8_byte string in a locally-displayable character set. All 8 bytes are significant and must be set.
description
Resource description (returned on QUERY_DSPU_TEMPLATE). The length of this should be a multiple of four bytes, and nonzero.
modify_template
Specifies whether this verb should add additional DSLU templates to an existing DSPU template or should replace an existing DSPU template (AP_MODIFY_DSPU_TEMPLATE or AP_REPLACE_DSPU_TEMPLATE).
If modify template is set to AP_MODIFY_DSPU_TEMPLATE and the named DSPU template does not exist, then it will be created.
If modify_template is set to AP_MODIFY_DSPU_TEMPLATE and the named DSPU template does not exist, then appended DSLU templates are added to the existing DSPU template.
If modify_template is set to AP_REPLACE_DSPU_TEMPLATE, then a new template is created. This can be from 0 to 65535 inclusive, where 0 means no limit.
max_instance
This is the maximum number of instances of the template which can be active concurrently. While this limit is reached, no new instances can be created. This can be from 0 to 65535 inclusive, where 0 means no limit.
num_of_dslu_templates
The number of DSLU template overlays which follow the DEFINE_DSPU_TEMPLATE VCB. This can be from 0 to 255 inclusive.
dslu_template.min_nau
Minimum NAU address in the range. This can be from 1 to 255 inclusive.
dslu_template.max_nau
Maximum NAU address in the range. This can be from 1 to 255 inclusive.
dslu_template.allow_timeout
Specifies whether the Program is allowed to time-out host LUs used by this downstream LU if the session is left inactive for the timeout period specified on the host LU definition (AP_YES or AP_NO).
dslu_template.delayed_logon
Specifies whether the Program should delay connecting the downstream LU to the host LU until the first data is received from the downstream LU. Instead, a simulated logon screen is sent to the downstream LU (AP_YES or AP_NO).
dslu_template.host_lu
Name of the host LU or host LU pool that all the downstream LUs within the range will be mapped onto. This is an 8-byte alphanumeric type-A EBCDIC string (starting with a letter), padded to the right with EBCDIC Spaces.

Returned Parameters

If the verb executes successfully, the Program returns the following parameter:
primary_rc
AP_OK
If the verb does not execute because of a parameter error, the Program returns the following parameters:
primary_rc
AP_PARAMETER_CHECK
secondary_rc
AP_INVALID_TEMPLATE_NAME

AP_INVALID_NAU_ADDRESS
AP_INVALID_NAU_RANGE
AP_CLASHING_NAU_RANGE
AP_INVALID_NUM_DSPU_TEMPLATES
AP_INVALID_ALLOW_TIMEOUT
AP_INVALID_DELAYED_LOGON
AP_INVALID_MODIFY_TEMPLATE

If the verb does not execute because of a state error, the Program returns the following parameters:
primary_rc
AP_STATE_CHECK
secondary_rc
AP_INVALID_HOST_LU_NAME

AP_CANT_MODIFY_VISIBILITY

If the verb does not execute because one or more of the relevant START_NODE parameters were not set, the Program returns the following parameter:
primary_rc
AP_FUNCTION_NOT_SUPPORTED
If the verb does not execute because the node has not yet been started, the Program returns the following parameter:
primary_rc
AP_NODE_NOT_STARTED
If the verb does not execute because the node is stopping, the Program returns the following parameter:
primary_rc
AP_NODE_STOPPING
If the verb does not execute because of a system error, the Program returns the following parameters:
primary_rc
AP_UNEXPECTED_SYSTEM_ERROR