DEFINE_PARTNER_LU

The DEFINE_PARTNER_LU verb defines the parameters of a partner LU for LU-LU sessions between a local LU and the partner LU. Alternatively, DEFINE_PARTNER_LU can be used to modify all parameters already defined for the partner LU, other than the fqplu_name and plu_alias.

VCB Structure

typedef struct define_partner_lu
{
        unsigned short  opcode;              /* verb operation code           */
        unsigned char   reserv2;             /* reserved                      */
        unsigned char   format;              /* format                        */
        unsigned short  primary_rc;          /* primary return code           */
        unsigned long   secondary_rc;        /* secondary return code         */
        PLU_CHARS       plu_chars;           /* partner LU characteristics    */
} DEFINE_PARTNER_LU;
typedef struct plu_chars
{
        unsigned char   fqplu_name[17];      /* fully qualified partner       */
                                             /* LU name                       */
        unsigned char   plu_alias[8];        /* partner LU alias              */
        unsigned char   description[RD_LEN];
                                             /* resource description          */
        unsigned char   plu_un_name[8];      /* partner LU uninterpreted name */
        unsigned char   preference           /* routing preference            */
        unsigned short  max_mc_ll_send_size; /* max MC send LL size           */
        unsigned char   conv_security_ver;   /* already_verified accepted?    */
        unsigned char   parallel_sess_supp;  /* parallel sessions supported?  */
        unsigned char   reserv2[8];          /* reserved                      */
} PLU_CHARS;

Supplied Parameters

The application supplies the following parameters:
opcode
AP_DEFINE_PARTNER_LU
format
Identifies the format of the VCB. Set this field to zero to specify the version of the VCB listed above.
plu_chars.fqplu_name
Fully qualified name of the partner LU. This name is 17 bytes long and is right-padded with EBCDIC spaces. It is composed of two type-A EBCDIC character strings concatenated by an EBCDIC dot. (Each name can have a maximum length of 8 bytes with no embedded spaces.)
plu_chars.plu_alias
Alias of the partner LU. This is an 8-byte string in a locally displayable character set. This field may be set to all zeros for a partner LU with no alias associated to it.
plu_chars.description
Resource description (returned on QUERY_PARTNER_LU and QUERY_PARTNER_LU_DEFINITION). This is a 16-byte string in a locally displayable character set. All 16 bytes are significant.
plu_chars.plu_un_name
Uninterpreted name of the partner LU. This is an 8-byte type-A EBCDIC character string.
plu_chars.max_mc_ll_send_size
Maximum size of LL records sent by and received by mapped conversation services at the partner LU. Range: 1–32␠767 (32␠767 is specified by setting this field to 0)
plu_chars.preference
The preferred routing protocol to be used for session activation to this partner LU. This field can take the following values:
AP_NATIVE
Use native (APPN®) routing protocols only.
AP_NONNATIVE
Use nonnative (AnyNet®) protocols only.
AP_NATIVE_THEN_NONNATIVE
Try native (APPN®) protocols, and if the partner LU cannot be located then retry session activation using nonnative (AnyNet) protocols.
AP_NONNATIVE_THEN_NATIVE
Try nonnative (AnyNet) protocols, and if the partner LU cannot be located then retry session activation using native (APPN) protocols.
AP_USE_DEFAULT_PREFERENCE
Use the default preference defined when the node was started. (This can be recalled by QUERY_NODE.)
Note:
Nonnative routing is only meaningful when an AnyNet® DLC is available to the Node Operator Facility, and there is an AnyNet® link station defined (see DEFINE_LS).
plu_chars.conv_security_ver
Specifies whether the partner LU is authorized to validate user_ids on behalf of local LUs, that is whether the partner LU can set the already verified indicator in an Attach request (AP_YES or AP_NO).
plu_chars.parallel_sess_supp
Specifies whether the partner LU supports parallel sessions (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_ANYNET_NOT_SUPPORTED
AP_DEF_PLU_INVALID_FQ_NAME
AP_INVALID_UNINT_PLU_NAME

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_PLU_ALIAS_CANT_BE_CHANGED

AP_PLU_ALIAS_ALREADY_USED

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

Effects of Redefinition

Following is the effect of redefinition of each field:
fqplu_name
Cannot be changed.
plu_alias
If a previous DEFINE_PARTNER_LU has been issued with a different plu_alias, the DEFINE_PARTNER_LU fails. If a previous DEFINE_PARTNER_LU has been issued with an all zero plu_alias, the redefinition is accepted and will effect all existing PLU records. If no previous DEFINE_PARTNER_LU has been issued, the specified plu_alias is copied into all correspondig implicitly defined partner LU records, unless all zeros are specified, in which case the implicit plu_aliases are left uchanged.
Note:
Issuing DEFINE_PARTNER_LU with a nonzero plu_alias can cause some running applications to fail, if the applicaiton has already obtained the implicit plu_alias from an earlier APPC verb and uses it on a subsequent ALLOCATE.
description
The updated description is returned on subsequent QUERY_PARTNER_LU verbs.
plu_un_name
The updated plu_un_name is used for all subsequent session activation requests to this partner LU, and is returned on all subsequent QUERY_PARTNER_LU verbs.
preference
The updated preference is used for all subsequent session activation requests to this partner LU, and is returned on all subsequent QUERY_PARTNER_LU verbs.
max_mc_ll_send_size
The updated preference is used for all subsequent session activation requests to this partner LU (even on existing sessions). The change does not effect existing conversations. The updated value is returned on all subsequent QUERY_PARTNER_LU verbs.
conv_security_ver
The updated value is not used for a particular local LU until the number of sessions between that local LU and the partner LU drops to zero. BINDs and RSP(BIND)s will flow using the old setting, and the old value will be returned in QUERY_PARTNER_LU requests until the number of sessions drops to zero. This is because the partner LU can reject subsequent session activation attempts if the security support is different than that of existing active sessions.
parallel_sess_supp
As with conv_security_ver, the updated value is not used for a particular local LU until the number of sessions between that local LU and the specified partner LU drops to zero. This is to avoid problems with the architected LU 6.2 session consistency check.
Note:
An implicit mode definition can be made explicit by a DEFINE_PARTNER_LU. This is reflected by subsequent QUERY_PARTNER_LU verbs returning with implicit set to AP_NO.