DEFINE_LU_0_TO_3

This verb defines an LU of type 0, 1, 2 or 3. It allows the LU to be added to an LU pool. If the pool does not already exist, it is added. This verb cannot be used to modify the lu_model, model_name, priority, description, and appc_spec_def_data of an existing definition, but no other fields may be modified.

Personal Communications or Communications Server supports implicit LU type 0, 1, 2 or 3 definition by ACTLU. Implicit definitions cannot be deleted, but are removed when the LU becomes inactive. To obtain information about implicit definitions, use QUERY_LU_0_TO_3 or register for LU_0_TO_3_INDICATIONs. An implicit LU definition can be redefined using DEFINE_LU_0_TO_3, provided lu_name, pu_name, and nau_address are correct, and pool_name is all zeros (the LU is then treated as if it had been configured by the operator in the first place).

VCB Structure

Format 1
typedef struct define_lu_0_to_3
{
        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   lu_name[8];            /* LU name                    */
        LU_0_TO_3_DEF_DATA
                        def_data;              /* defined data               */
} DEFINE_LU_0_TO_3;
typedef struct lu_0_to_3_def_data
{
        unsigned char   description            /* resource description       */
        unsigned char   nau_address;           /* LU NAU address             */
        unsigned char   pool_name[8];          /* LU pool name               */
        unsigned char   pu_name[8];            /* PU name                    */
        unsigned char   priority;              /* LU priority                */
        unsigned char   lu_model;              /* LU model                   */
        unsigned char   sscp_id[6]             /* SSCP ID                    */
        unsigned short  timeout;               /* Timeout                    */
        unsigned char   app_spec_def_data[16]; /* Application Specified Data */
        unsigned char   model_name[7];         /* LU model name for DDDLU    */
        unsigned char   reserv3[17];           /* reserved                   */
} LU_0_TO_3_DEF_DATA;

VCB Structure

Format 0
typedef struct define_lu_0_to_3
{
        unsigned short  opcode;                /* verb operation code        */
        unsigned char   attributes;            /* attributes                 */
        unsigned char   format;                /* format                     */
        unsigned short  primary_rc;            /* primary return code        */
        unsigned long   secondary_rc;          /* secondary return code      */
        unsigned char   lu_name[8];            /* LU name                    */
        LU_0_TO_3_DEF_DATA
                        def_data;              /* defined data               */
} DEFINE_LU_0_TO_3;
typedef struct lu_0_to_3_def_data
{
        unsigned char   description            /* resource description       */
        unsigned char   nau_address;           /* LU NAU address             */
        unsigned char   pool_name[8];          /* LU pool name               */
        unsigned char   pu_name[8];            /* PU name                    */
        unsigned char   priority;              /* LU priority                */
        unsigned char   lu_model;              /* LU model                   */
        unsigned char   sscp_id[6]             /* SSCP ID                    */
        unsigned short  timeout;               /* Timeout                    */
        unsigned char   app_spec_def_data[16]; /* Application Specified Data */
       } LU_0_TO_3_DEF_DATA;

Supplied Parameters

The application supplies the following parameters:
opcode
AP_DEFINE_LU_0_TO_3
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 or one to specify one of the versions of the VCB listed above.
lu_name
Name of the local 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_LU_0_TO_3). This is a 16-byte string in a locally displayable character set. All 16 bytes are significant.
def_data.nau_address
Network addressable unit address of the LU, which must be in the range 1–255.
def_data.pool_name
Name of LU pool to which this LU belongs.This is an 8-byte alphanumeric type-A EBCDIC string (starting with a letter), padded to the right with EBCDIC spaces. If the LU does not belong to a pool, this field is set to all binary zeros. If the pool does not currently exist, it is created.
def_data.pu_name
Name of the PU (as specified on the DEFINE_LS verb) that this LU will use. This is an 8-byte alphanumeric type-A EBCDIC string (starting with a letter), padded to the right with EBCDIC spaces.
def_data.priority
LU priority when sending to the host. This is set to one of the following values:

AP_NETWORK
AP_HIGH
AP_MEDIUM
AP_LOW

def_data.lu_model
Model type and number of the LU. This is set to one of the following values:

AP_3270_DISPLAY_MODEL_2
AP_3270_DISPLAY_MODEL_3
AP_3270_DISPLAY_MODEL_4
AP_3270_DISPLAY_MODEL_5
AP_RJE_WKSTN
AP_PRINTER
AP_SCS_PRINTER
AP_UNKNOWN

Format 1 only, if model_name is not set to all binary zeros, then this field is ignored.

If a value other than AP_UNKNOWN is specified and the host system supports DDDLU (Dynamic Definition of Dependent LUs), the node will generate an unsolicited PSID NMVT reply in order to dynamically define the local LU at the host. For format 1 only, the PSID subvector contains the machine type and model number corresponding to the value of this field. This field may be changed dynamically by reissuing the verb. Changes will not come into effect until the LU is next closed and deactivated.

def_data.sscp_id
This field specifies the ID of the SSCP permitted to activate this LU. It is a 6-byte binary field. If the field is set to binary zeros, then the LU may be activated by any SSCP.
def_data.timeout
Timeout for LU specified in seconds. If a timeout is supplied and the user of the LU specified allow_timeout on the OPEN_LU_SSCP_SEC_RQ (or, in the case of PU concentration, on the Downstream LU definition), then the LU will be deactivated after the PLU-SLU session is left inactive for this period and one of the following conditions holds:
  • The session passes over a limited resource link
  • Another application wishes to use the LU before the session is used again

If the timeout is set to zero, the LU will not be deactivated.

def_data.app_spec_def_data
Application specified defined data. This field is not interpreted by Personal Communications or Communications Server, but is stored and subsequently returned on the QUERY_LU_0_TO_3 verb.
def_data.model_name
Personal Communications or Communications Server checks that this field consists of the EBCDIC characters A–Z, 0–9 and @, #, and $. If this field is not set to all binary zeros and the host system supports DDDLU (Dynamic Definition of Dependent LUs), the node will generate an unsolicited PSID NMVT reply in order to dynamically define the local LU at the host. The PSID subvector will contain the name supplied in this field. This field may be changed dynamically by reissuing the verb. Changes will not come into effect until the LU is closed and deactivated.

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_LU_NAME

AP_INVALID_PU_NAME
AP_INVALID_PU_TYPE
AP_PU_NOT_DEFINED
AP_LU_ALREADY_DEFINED
AP_LU_NAU_ADDR_ALREADY_DEFD
AP_CANT_MODIFY_VISIBILITY

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_NAME_POOL_NAME_CLASH
AP_LU_ALREADY_DEFINED
AP_LU_NAU_ADDR_ALREADY_DEFD

If the verb does not execute because the system has not been built with Dependent LU support, the Program returns the following parameter:
primary_rc
AP_INVALID_VERB
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 parameter:
primary_rc
AP_UNEXPECTED_SYSTEM_ERROR