15. Global Directory Service Package

Back to Table of Contents The Global Directory Service Package (GDSP) is an OSF extension to the XDS interface. Applications must negotiate use of this package with ds_version() before using any of the additional features. If an application attempts to use features specific to this package without first negotiating its use, then an appropriate error (for example, OM_NO_SUCH_CLASS) is returned by the Object Management function.

The object identifier associated with the GDSP is

{iso(1) identified-organisation(3) icd-ecma(0012) member-company(2) siemens-units(1107) sni(1) directory(3) xdsapi(100) gdsp(0)}
with the following encoding:
\x2B\xC\x2\x88\x53\x1\x3\x64\x0

The identifier is represented by the constant DSX_GDS_PKG. The C constants associated with this package are contained in the xdsgds.h header file.

The concepts and notation used are first mentioned in Section 11.1. They are also fully explained in Chapters 17 through 19. The attribute types are introduced first, followed by the object classes. Next, the OM class hierarchy and OM class definitions required to support the new attribute types are described.

15.1. GDSP Attribute Types

Back to Table of Contents This section presents the additional directory attribute types that are used with GDSP. Each attribute type has an object identifier, which is the value of the OM attribute DS_ATTRIBUTE_TYPE. These object identifiers are represented in the interface by constants with the same name as the directory attribute, and they are prefixed by DSX_A_ so that they can be easily identified.

This section contains two tables that are used to indicate the object identifiers for GDSP attribute types (see Table 15-1), and the values for GDSP attribute types (see Table 15-2), respectively. Following these two tables is a brief description of each attribute. (See Section 12.1 for information on general matching rules.)

Table 15-1 shows the names of the GDSP attribute types, together with the BER encoding of the object identifiers associated with each of them.

Note: The third column of Table 15-1 contains the contents octets of the BER encoding of the object identifier in hexadecimal. All these object identifiers stem from the root {iso(1) identified-organization(3) idc-ecma(0012) member-company(2) siemens-units(1107) sni(1) directory(3) attribute-type(4)}.

Table 15-1: Object Identifiers for GDSP Attribute Types
PackageAttribute TypeObject Identifier BER
Hexdecimal
GDSPDSX_A_ACL\x2B\x0C\x02\x88\x53\x01\x03\x04\x01
GDSPDSX_A_AT\x2B\x0C\x02\x88\x53\x01\x03\x04\x06
GDSPDSX_A_CDS_CELL\x2B\x0C\x02\x88\x53\x01\x03\x04\x0D
GDSPDSX_A_CDS_REPLICA\x2B\x0C\x02\x88\x53\x01\x03\x04\x0E
GDSPDSX_A_CLIENT\x2B\x0C\x02\x88\x53\x01\x03\x04\x0A
GDSPDSX_A_DEFAULT_DSA\x2B\x0C\x02\x88\x53\x01\x03\x04\x08
GDSPDSX_A_DNLIST\x2B\x0C\x02\x88\x53\x01\x03\x04\x0B
GDSPDSX_A_LOCAL_DSA\x2B\x0C\x02\x88\x53\x01\x03\x04\x09
GDSPDSX_A_MASTER_KNOWLEDGE\x2B\x0C\x02\x88\x53\x01\x03\x04\x00
GDSPDSX_A_OCT\x2B\x0C\x02\x88\x53\x01\x03\x04\x05
GDSPDSX_A_SHADOWED_BY\x2B\x0C\x02\x88\x53\x01\x03\x04\x03
GDSPDSX_A_SHADOWING_JOB\x2B\x0C\x02\x88\x53\x01\x03\x04\x0C
GDSPDSX_A_SRT\x2B\x0C\x02\x88\x53\x01\x03\x04\x04
GDSPDSX_A_TIME_STAMP\x2B\x0C\x02\x88\x53\x01\x03\x04\x02

Table 15-2 shows the names of the attribute types, together with the OM value syntax used in the interface to represent values of that attribute type. The table also includes the range of lengths permitted for the string types, indicates whether the attribute can be multivalued, and lists which matching rules are provided for the syntax.

Table 15-2: Representation of Values for GDSP Attribute Types
Attribute TypeOM Value SyntaxValue LengthMulti-valuednRules
DSX_A_ACLObject(DSX_C_GDS_ACL)--noE
DSX_A_ATString(OM_S_PRINTABLE_STRING)1-101yesE,S
DSX_A_CDS_CELLString(OM_S_OCTET_STRING)1-284noE
DSX_A_CDS_REPLICAString(OM_S_OCTET_STRING)1-905yesE
DSX_A_CLIENTOnly a cache attribute------
DSX_A_DEFAULT_DSAOnly a cache attribute------
DSX_A_DNLISTObject(DS_C_DS_DN)--yesE,S
DSX_A_LOCAL_DSAOnly a cache attribute------
DSX_A_MASTER_KNOWLEDGEObject(DS_C_DS_DN)--noE,S
DSX_A_OCTString(OM_S_PRINTABLE_STRING)1-397yesE,S
DSX_A_SHADOWED_BYNot used yet------
DSX_A_SHADOWING_JOBNot used yet------
DSX_A_SRTString(OM_S_PRINTABLE_STRING)1-29yesE,S
DSX_A_TIME_STAMPString(OM_S_UTC_TIME_STRING)11-17noE,O

Note: With the exception of the DSX_A_ACL attribute, the GDSP attributes in Table 15-2 are only to be manipulated through the GDS administration interface (see the OSF DCE GDS Administration Guide and Reference.)

Descriptions of the GDSP attributes follow:

15.2. GDSP Object Classes

Back to Table of Contents

The only additional GDSP object class is DSX_O_SCHEMA (see Table 15-3). It is stored in GDS as an object directly under root. The most important attributes of the DSX_O_SCHEMA object are the three recurring attributes DSX_A_OCT, DSX_A_AT, and DSX_A_SRT. These three objects describe the GDS DIT structure. For a more detailed explanation of the GDSP DSX_O_SCHEMA object, see the OSF DCE GDS Administration Guide and Reference.

Note: The third column of Table 15-3 contains the contents octets of the BER encoding of the object identifier in hexadecimal. This object identifier stems from the root {iso(1) identified-organization(3) idc-ecma(0012) member-company(2) siemens-units(1107) sni(1) directory(3) object-class(6)}.

Table 15-3: Object Identifier for GDSP Object Classes
PackageAttribute TypeObject Identifier BER
Hexdecimal
GDSPDSX_O_SCHEMA\x2B\x0C\x02\x88\x53\x01\x03\x06\x00

15.3. GDSP OM Class Hierarchy

Back to Table of Contents The remainder of this chapter defines the additional OM classes used by GDSP. This section shows the hierarchical organization of the OM classes that are defined in the following sections, and it shows which classes inherit additional OM attributes from their OM superclasses. In the following list, subclassification is indicated by indentation, and the names of abstract OM classes are represented in italics.

OM_C_OBJECT (defined in the OM package)

None of the OM classes in the preceding list are encodable by using om_encode and om_decode.

15.4. DSX_C_GDS_ACL

Back to Table of Contents An instance of OM class DSX_C_GDS_ACL describes up to five categories of rights for one or more directory users.

An instance of this OM class has the OM attributes of its superclass, OM_C_OBJECT, in addition to the OM attributes listed in Table 15-4.

Table 15-4: OM Attributes of DSX_C_GDS_ACL
OM AttributeValue SyntaxValue LengthValue NumberValue Initially
DSX_MODIFY_PUBLICObject(DSX_C_GDS_ACL_ITEM)--0-4--
DSX_READ_STANDARDObject(DSX_C_GDS_ACL_ITEM)--0-4--
DSX_MODIFY_STANDARDObject(DSX_C_GDS_ACL_ITEM)--0-4--
DSX_READ_SENSITIVEObject(DSX_C_GDS_ACL_ITEM)--0-4--
DSX_MODIFY_SENSITIVEObject(DSX_C_GDS_ACL_ITEM--0-4--

The OM attributes of DSX_C_GDS_ACL are as follows:

15.5. DSX_C_GDS_ACL_ITEM

Back to Table of Contents An instance of OM class DSX_C_GDS_ACL_ITEM is a component of an instance of OM class DSX_C_GDS_ACL. It specifies the user, or subtree of users, to whom an access right applies.

An instance of this OM class has the OM attributes of its superclass, OM_C_OBJECT, in addition to the OM attributes listed in Table 15-5.

Table 15-5: Om Attributes of DSX_C_GDS-ACL_ITEM
OM AttributeValue SyntaxValue LengthValue NumberValue Initially
DSX_INTERPRETATIONEnum(DSX_Interpretation)--1--
DSX_USERObject(DS_C_DS_DN)--1--

The OM attributes of a DSX_C_GDS_ACL_ITEM are as follows:

15.6. DSX_C_GDS_CONTEXT

Back to Table of Contents An instance of OM class DSX_C_GDS_CONTEXT comprises per-operation arguments that are accepted by most of the interface functions. GDS supports additional service controls that are defined by the DSX_C_GDS_CONTEXT OM class.

An instance of this OM class has the OM attributes of its superclasses, OM_C_OBJECT and DS_C_CONTEXT, in addition to the OM attributes listed in Table 15-6.

Table 15-6: OM Attributes of DSX_C_GDS_CONTEXT
OM AttributeValue SyntaxValue LengthValue NumberValue Initially
Service Controls
DSX_DUAFIRSTOM_S_BOOLEAN--1OM_FALSE
DSX_DONT_STOREOM_S_BOOLEAN--1OM_TRUE
DSX_NORMAL_CLASSOM_S_BOOLEAN--1OM_FALSE
DSX_PRIV_CLASSOM_S_BOOLEAN--1OM_FALSE
DSX_RESIDENT_CLASSOM_S_BOOLEAN--1OM_FALSE
DSX_USEDSAOM_S_BOOLEAN--1OM_TRUE
DSX_DUA_CACHEOM_S_BOOLEAN--1OM_FALSE
DSX_PREFER_ADM_FUNCSOM_S_BOOLEAN--1OM_FALSE
DSX_SIGN_MECHANISMEnum(DSX_Sign_Mechanism--0-1--
DSX_PROT_REQUESTEnum(DSX_Prot_Request--0-1--

The OM attributes of the DSX_C_GDS_CONTEXT OM class are as follows:

The DUA cache categorizes the information stored into three different memory classes. The user specifies the category with the following service controls:

Only the service control of one memory class can be set. The ds_add_entry() function also evaluates these service control bits if the function is used on the DUA cache.

Applications can assume that an object of OM class DSX_C_GDS_CONTEXT, created with default values of all its OM attributes, works with all the interface functions. The constant DS_DEFAULT_CONTEXT can be used as an argument to functions instead of creating an OM object with default values.

The default DSX_C_GDS_CONTEXT is defined in Table 15-7.

Table 15-6: Default DSX_C_GDS_CONTEXT
OMAttributeDefault Value
Common Arguments
DS_OPERATION_PROGRESSDS_OPERATION_NOT_STARTED
DS_ALIASED_RDNS0
Service Controls
DS_CHAINING_PROHIBOM_TRUE
DS_DONT_DEREFERENCE_ALIASESOM_FALSE
DS_DONT_USE_COPYOM_TRUE
DS_LOCAL_SCOPEOM_FALSE
DS_PREFER_CHAININGOM_FALSE
DS_PRIORITYDS_MEDIUM
Local Controls
DS_ASYNCHRONOUSOM_FALSE
DS_AUTOMATIC_CONTINUATIONOM_TRUE
Private Extensions
DSX_DUAFIRSTOM_FALSE
DSX_DONT_STOREOM_TRUE
DSX_NORMAL_CLASSOM_FALSE
DSX_PRIV_CLASSOM_FALSE
DSX_RESIDENT_CLASSOM_FALSE
DSX_USEDSAOM_TRUE
DSX_DUA_CACHEOM_FALSE
DSX_PREFER_ADM_FUNCSOM_FALSE
DSX_SIGN_MECHANISMAbsent
DSX_PROT_REQUESTAbsent

15.7. DSX_C_GDS_SESSION

Back to Table of Contents An instance of OM class DSX_C_GDS_SESSION identifies a particular link from an application program to a GDS DUA. This additional OM class is necessary if the user either wants to specify an authentication mechanism or wants to specify the GDS directory identifier, or alternatively wants to specify both an authentication mechanism and the directory identifier. DSX_C_GDS_SESSION can be passed as an argument to ds_bind().

An instance of this OM class has the OM attributes of its superclasses, OM_C_OBJECT and DS_C_SESSION, in addition to the OM attributes listed in Table 15-8.

Table 15-8: OM Attributes of DSX_C_GDS_SESSION
OM AttributeValue SyntaxValue LengthValue NumberValue Initially
DSX_PASSWORDString(OM_S_OCTET_STRING)--0 or 1--
DSX_DIR_IDOM_S_INTEGER--11
DSX_AUTH_MECHANISMEnum(DSX_Auth_Mechanism)--0-1--
DSX_AUTH_INFOString(OM_S_OCTET_STRING--0-1--

The OM attributes of DSX_C_GDS_SESSION are as follows:

Applications can assume that an object of OM class DSX_C_GDS_SESSION, created with default values of all its OM attributes, works with all the interface functions. Such a session can be created by passing the constant DS_DEFAULT_SESSION as an argument to ds_bind(), having already negotiated the GDS package.

Table 15-9 defines DSX_C_GDS_SESSION.

Table 15-9: Default DSX_C_GDS_SESSION
OM AttributeValue SyntaxValue LengthValue NumberValue Initially
DS_DSA_ADDRESSValue obtained from the cache or absent
DS_DSA_NAMEValue obtained from the cache or absent
DS_FILE_DESCRIPTORDS_NO_VALID_FILE_DESCRIPTOR
DSX_DIR_ID1
DSX_AUTH_MECHANISMAbsent
DSX_AUTH_INFOAbsent

Note: The values of DS_DSA_ADDRESS and DS_DSA_NAME are taken from the cache of Directory ID 1.

© 1990-1996, Transarc Corporation