DEFINE_INTERNAL_PU

The DEFINE_INTERNAL_PU verb defines a DLUR-served local PU. This verb is not used to define a local PU which is directly attached to the host. See DEFINE_LS for this purpose.

Note: The DEFINE_LS verb should be used to define the following:
  • A downstream PU served by:
    • DLUR
    • PU concentration
  • A local PU that is directly attached to the host

VCB Structure

typedef struct define_internal_pu
{
        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   pu_name[8];         /* internal PU name      */
        INTERNAL_PU_DEF_DATA def_data;      /* defined data          */
} DEFINE_INTERNAL_PU;
typedef struct internal_pu_def_data
{
        unsigned char   description[RD_LEN];
                                            /* resource description  */
        unsigned char   dlus_name[17];      /* DLUS name             */
        unsigned char   bkup_dlus_name[17]; /* backup DLUS name      */
        unsigned char   pu_id[4];           /* PU identifier         */
        unsigned short  dlus_retry_timeout; /* DLUS retry timeout    */
        unsigned short  dlus_retry_limit;   /* DLUS retry limit      */
        unsigned char   conventional_lu_compression;
                                            /* Data compression      */
                                            /* requested for con-    */
                                            /* ventional LU sessions */
        unsigned char   conventional_lu_cryptography;
                                            /* Cryptography required */
                                            /* for conventional LU   */
                                            /* sessions              */
        unsigned char   reserv2[2]  ;         /* reserved            */
} INTERNAL_PU_DEF_DATA;

Supplied Parameters

The application supplies the following parameters:
opcode
AP_DEFINE_INTERNAL_PU
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.
pu_name
Name of the internal PU 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_DLUR_PU and QUERY_PU). This is a 16-byte string in a locally displayable character set. All 16 bytes are significant.
def_data.dlus_name
Name of the DLUS node that DLUR will use when it initiates SSCP-PU activation. This should be set to all zeros or a 17-byte string composed of two type-A EBCDIC character strings concatenated by an EBCDIC dot, and is right-padded with EBCDIC spaces. (Each name can have a maximum length of 8 bytes with no embedded spaces.) If the field is set to all zeros, the global default DLUS (if it has been defined, using the DEFINE_DLUR_DEFAULTS verb) is used in DLUR-initiated SSCP-PU activation.
def_data.bkup_dlus_name
Name of the DLUS node that will serve as the backup DLUS for this PU. This should be set to all zeros or a 17-byte string composed of two type-A EBCDIC character strings concatenated by an EBCDIC dot, and is right-padded with EBCDIC spaces. (Each name can have a maximum length of 8 bytes with no embedded spaces.) If the field is set to all zeros, the global backup default DLUS (if it has been defined by the DEFINE_DLUR_DEFAULTS verb) is used as the backup for this PU.
def_data.pu_id
PU identifier. This a 4-byte hexadecimal string. Bits 0–11 are set to the Block number and bits 12–31 to the ID number that uniquely identifies the PU. This must match the pu_id configured at the host.
def_data.dlus_retry_timeout
Interval in seconds between second and subsequent attempts to contact the DLUS specified in the def_data.dlus_name and def_data.bkup_dlus_name fields. The interval between the initial attempt and the first retry is always one second. If zero is specified, the default value configured through DEFINE_DLUR_DEFAULTS is used. This field is ignored if def_data.dspu_services is not set to AP_DLUR.
def_data.dlus_retry_limit
Maximum number of retries after an initial failure to contact the DLUS specified in the def_data.dlus_name and def_data.bkup_dlus_name fields. If zero is specified, the default value configured through DEFINE_DLUR_DEFAULTS is used. If X'FFFF' is specified, the Program retries indefinitely. This field is ignored if def_data.dspu_services is not set to AP_DLUR.
def_data.conventional_lu_compression
Specifies whether data compression is requested for conventional LU sessions dependent on this PU.
AP_NO
The local node should not be compressing or decompressing data flowing on conventional LU sessions using this PU.
AP_YES
Data compression should be enabled for conventional LU sessions dependent on this PU if the host requests compression. If this value is set, but the node does not support compression (defined on the START_NODE verb) then the INTERNAL_PU is successfully defined but without compression support.
def_data.conventional_lu_cryptography
Note: This function applies only to Communications Server.

Specifies whether session level encryption is required for conventional LU sessions dependent on this PU.

AP_NONE
The local node should not be compressing or decompressing data flowing on conventional LU sessions using this PU.
AP_MANDATORY
Mandatory session level encryption is performed by APPN if an import key is available to the LU. Otherwise, it must be performed by the application that uses the LU (if this is PU Concentration, then it is performed by a downstream LU).
AP_OPTIONAL
This value allows the cryptography used to be driven by the host application on a per session basis. If the host request cryptography for a session is dependent on this PU, then the behaviour of the Program is the same for AP_MANDATORY. If the host does not request cryptography, then the behaviour is the same as AP_NONE.

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_PU_NAME

AP_INVALID_PU_ID
AP_INVALID_DLUS_NAME
AP_INVALID_BKUP_DLUS_NAME
AP_INVALID_CLU_CRYPTOGRAPHY

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_PU_ALREADY_DEFINED

AP_CANT_MODIFY_VISIBILITY

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