DEFINE_DOWNSTREAM_LU_RANGE

The Communications Server icon lets you know that there is a change in the way things operate.
This verb applies only to Communications Server.
The DEFINE_DOWNSTREAM_LU_RANGE 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_DOWNSTREAM_LU_RANGE allows the definition of multiple downstream LUs within a specified NAU range (but cannot be used to modify an existing definition). The node operator provides a base name and an NAU range. The LU names are generated by combining the base name with the NAU addresses.

For example, a base name of LUNME combined with an NAU range of 1 to 4 would define the LUs LUNME001, LUNME002, LUNME003, and LUNME004. A base name of less than five non-pad characters results in LU names of less than eight non-pad characters. Communications Server then right-pads these to eight characters.

Each downstream LU is mapped to the specified host LU (defined using the DEFINE_LU_0_TO_3 verb).

VCB Structure

typedef struct define_downstream_lu_range
{
        unsigned short  opcode;           /* verb operation code        */
        unsigned char   attributes;       /* verb attributes            */
        unsigned char   reserv2;          /* reserved                   */
        unsigned char   format;           /* format                     */
        unsigned short  primary_rc;       /* primary return code        */
        unsigned long   secondary_rc;     /* secondary return code      */
        unsigned char   dslu_base_name[5];/* Downstream LU base name    */
        unsigned char   description[RD_LEN];
                                          /* resource description       */
        unsigned char   min_nau;          /* min NAU address in range   */
        unsigned char   max_nau;          /* max NAU address in range   */
        unsigned char   dspu_name[8];     /* Downstream PU name         */
        unsigned char   host_lu_name[8];  /* Host LU or pool name       */
        unsigned char   allow_timeout;    /* Allow timeout of host LU?  */
        unsigned char   delayed_logon;    /* Allow delayed logon to the */
                                          /* host LU                    */
        unsigned char   reserv4[6];       /* reserved                   */
} DEFINE_DOWNSTREAM_LU_RANGE;

Supplied Parameters

The application supplies the following parameters:
opcode
AP_DEFINE_DOWNSTREAM_LU_RANGE
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.
dslu_base_name
Base name for downstream LU name range. This is a 5-byte alphanumeric type-A EBCDIC string (starting with a letter), padded to the right with EBCDIC spaces. This base name is appended with three type-A EBCDIC numeric characters, representing the decimal value of the NAU address, for each LU in the NAU range.
description
Resource description (returned on QUERY_DOWNSTREAM_LU). The length of this field should be a multiple of four bytes, and not zero.
min_nau
Minimum NAU address in the range. This can be from 1 to 255 inclusive.
max_nau
Maximum NAU address in the range. This can be from 1 to 255 inclusive.
dspu_name
Name of the DOWNSTREAM PU (as specified on the DEFINE_LS). This is an 8-byte alphanumeric type-A EBCDIC string (starting with a letter), padded to the right with EBCDIC spaces.
host_lu_name
Name of the host LU or host LU pool that all the downstream LUs within the range are mapped to. This is an 8-byte alphanumeric type-A EBCDIC string (starting with a letter), padded to the right with EBCDIC spaces.
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).
delayed_logon
Specifies whether the Program should delay connection of the downstream LU to the host LU until the first data is received from the downstream LU. Instead, a simulated logon screen will be sent to the downstream LU (AP_YES or AP_NO).

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_DNST_LU_NAME

AP_INVALID_NAU_ADDRESS
AP_INVALID_ALLOW_TIMEOUT
AP_INVALID_DELAYED_LOGON

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_LU_NAME_POOL_NAME_CLASH

AP_LU_ALREADY_DEFINED
AP_INVALID_HOST_LU_NAME
AP_PU_NOT_DEFINED
AP_INVALID_PU_NAME
AP_INVALID_PU_TYPE
AP_LU_NAU_ADDR_ALREADY_DEFD
AP_CANT_MODIFY_VISIBILITY
AP_DELAYED_VERB_PENDING

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