z/OS Communications Server: CMIP Services and Topology Agent Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


How application programs format data to be sent to CMIP services

z/OS Communications Server: CMIP Services and Topology Agent Guide
SC27-3646-00

When calling the MIBSendRequest or MIBSendResponse functions, the application program provides a zero-terminated string that includes the following:
  • The word msg
  • A blank
  • The name of an ASN.1 module
  • A period
  • The name of a type within that ASN.1 module
  • Values for all of the fields associated with that type
For example, the following zero-terminated string could be passed as the fourth parameter to the MIBSendRequest function.
"msg ACF.Release (a1)"

When calling the MIBSendCmipRequest or MIBSendCmipResponse functions, the application program provides a zero-terminated string that includes only the values for all of the fields associated with the type listed in the ANY DEFINED BY table for the specified operation-value or error-value.

For example, to send a GET request by the MIBSendCmipRequest function, the second parameter of the MIBSendCmipRequest function should be three (operation-value for GET) and the third parameter of MIBSendCmipRequest function could be the following zero-terminated string:
"(baseManagedObjectClass 2.9.3.2.3.13,"
" baseManagedObjectInstance "
"   (distinguishedName "
"      '1.3.18.0.2.4.6=NETA;2.9.3.2.7.4=(name GEORGE)'),"
" attributeIdList (2.9.3.2.7.35,2.9.3.2.7.5))"

Each value is made up of a <label> <value> pair. The <label> is the identifier that appears in ASN.1 NamedTypes. See clause 12.5 of ISO-8825 for the formal definition of a NamedType.

In the following example, a, b, and c are possible labels. For the field with data type D, the type name is used as a label. Using the type name as a label is necessary only when the ASN.1 syntax was defined without labels for all SET and SEQUENCE fields. If the type name is used for a data type that has a label, the type name is rejected.
    A ::= SEQUENCE
          {
              a INTEGER,
              b OBJECT IDENTIFIER,
              c C,
                D
          }
Labels can always be specified, but they are required only to resolve ambiguity in the ASN.1 definition. Because it is difficult to know when ambiguity exists, use the following rules when building strings to send to CMIP services:
  • Labels are required on members of a SET construct, because the members of the SET can be specified in any order.
  • A label is required to resolve a CHOICE; otherwise CMIP services cannot determine which choice was selected by the application program.
  • It is recommended that members of a SEQUENCE be identified with a label. Labels are required only in situations where an optional member is intentionally omitted and subsequent members follow. However, unless every member of a sequence is specified, or the optional members that are intentionally omitted are located at the end of the SEQUENCE, it is simpler to identify all members with a label.
  • Elements of a SET and SEQUENCE and the element of a CHOICE are surrounded by parentheses.
The <value> portion of the <label> <value> pair can be specified in the following ways:
  • Primitive data types, such as BOOLEAN and INTEGER, that are not composed of one or more instances of other data types
  • Constructed data types, such as SEQUENCE and SET
  • Hexadecimal basic encoding rules (BER), which can be used for all ASN.1 types except CHOICE and ANY DEFINED BY.

Any of the five following formats are recognized by CMIP services, but CMIP services always returns explicit value notation if there are no insurmountable errors encountered during the decoding of incoming strings. If errors are encountered, the hexadecimal BER format explained in Hexadecimal BER format is used.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014