DEFINE_DOWNSTREAM_LU

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 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 defines a new downstream LU and cannot be used to modify an existing definition. The downstream LU is mapped to the specified host LU (defined using the DEFINE_LU_0_TO_3 verb). The host LU can also be specified in terms of an LU pool.

When DEFINE_DOWNSTREAM_LU is issued for an existing downstream LU definition, the definition must be identical. If the downstream link is active and the downstream LU is inactive, the verb will be returned as successful and a reactivation attempt is made (although this may not be successful). If the downstream is not active or the downstream LU is already active, the verb failed. The processing of the reactivation attempt depends on the state of the specified host LU.
  • If the host LU is active, then the ACTLU is resent to the downstream LU immediately.
  • If the host LU is inactive, the node waits for the host LU to become active before sending the ACTLU to the downstream LU. The node attempts to activate the link to the host if it is not active (this will not be successful if the host link cannot be activated automatically).

VCB Structure

typedef struct define_downstream_lu
{
        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_name[8];     /* Downstream LU name         */
        DOWNSTREAM_LU_DEF_DATA def_data;  /* defined data               */
} DEFINE_DOWNSTREAM_LU;
typedef struct downstream_lu_def_data
{
        unsigned char   description[RD_LEN];
                                          /* resource description       */
        unsigned char   nau_address;      /* Downstream LU NAU address  */
        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     */
                                          /* host LU                    */
        unsigned char   reserv2[6];       /* reserved                   */
} DOWNSTREAM_LU_DEF_DATA;

Supplied Parameters

The application supplies the following parameters:
opcode
AP_DEFINE_DOWNSTREAM_LU
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_name
Name of the downstream LU that is being defined. This is an 8-byte alphanumeric type-A EBCDIC string (starting with a letter), padded to the right with EBCDIC spaces.
def_data.description
Resource description (returned on QUERY_DOWNSTREAM_LU). The length of this field should be a multiple of four bytes, and not zero.
def_data.nau_address
Network addressable unit address of the DOWNSTREAM LU. This must be in the range 1–255.
def_data.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.
def_data.host_lu_name
Name of the host LU or host LU pool that the downstream LU is mapped to. This is an 8-byte alphanumeric type-A EBCDIC string (starting with a letter), padded to the right with EBCDIC spaces.
def_data.allow_timeout
Specifies whether the Program is allowed to time-out host LUs used by this dowstream LU if the session is left inactive for the timeout period specified on the host LU definition (AP_YES or AP_NO).
def_data.delayed_logon
Specifies whether the Program should delay connecting the downstream LU to the host LU until the first data is received from the dowstream LU. Instead, a simulated logon screen is 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

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_PU_NAME

AP_INVALID_PU_TYPE
AP_PU_NOT_DEFINED
AP_LU_ALREADY_DEFINED
AP_LU_NAU_ADDR_ALREADY_DEFD
AP_INVALID_HOST_LU_NAME
AP_LU_NAME_POOL_NAME_CLASH
AP_PU_NOT_ACTIVE
AP_LU_ALREADY_ACTIVATING
AP_LU_DEACTIVATING
AP_LU_ALREADY_ACTIVE
AP_CANT_MODIFY_VISIBILITY
AP_INVALID_ALLOW_TIMEOUT
AP_INVALID_DELAYED_LOGON
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