Object Identifiers

Object Identifiers (OIDs) are the core of the NDPS information objects. OIDs define Object Classes, Value Classes, and even Attribute Value Syntaxes values of attributes if the syntax indicates OIDs as values. The following are names for some nodes within the global OID tree:

ISO = 1.0
JOINT-ISO-CITT-US-ORG = 2.16.840.1
ISOORG = 1.3
mgmt = ISOORG.6.1.2
mib-2 = mgmt.1
NOVELL = JOINT-ISO-CITT-US-ORG.113719
Novell-Applications = NOVELL.1
NA-dps = Novell-Applications.4
printmib = mib-2.43
DPA = ISO.10175
Iso.org.dod.internet.private.enterprise = 1.3.6.1.4.1

OIDs used for NDPS objects are taken from three arcs within the global OID tree and include:

NA-dps = 2.16.840.1.113719.1.4
printmib = 1.3.6.1.2.1.43
DPA = 1.0.10175


Object Classes

The Document Printing Application (DPA) and the Printer MIB standards each define OIDs for its object classes. Each standard uses its unique arc from the global OID tree to define OIDs for object classes and attributes. DPA also uses OIDs for the values of some attributes. The Printer MIB does not use OIDs for any attribute value because the Printer MIB instantiates classes and attributes as tables or groups, each with its unique identifying OID.

For example, DPA defines the following OIDs for object classes and value classes:

DPAOID = DPA.1.0.0
id-oc = DPAOID.3 // DPA Object Classes
id-vc = DPAOID.6 // DPA Value Classes

Then, specific classes are defined using the id-oc OID. For example,

id-oc-job = id-oc.1 // DPA Job Class

Then, specific attributes for a class are defined by extending the OID for the class. For example,

id-att-job-owner = id-oc-job.3

NDPS has a fixed set of object classes. Both the object classes and attributes of those object classes are built with OIDs from the Novell® Applications NDPS arc in the global OID tree.

NDPS object classes and value classes are defined from the following:

ndps-oc = NA-dps.0 // NDPS-specific Object Classes
ndps-vc = NA-dps.1 // NDPS-specific Value Class

The OID for each NDPS attribute contains a layer, immediately after the class designator, that indicates the source of the definition of the designated attribute. This additional layer makes each OID longer, but facilitates mapping with gateways that use the original DPA OIDs or the Printer MIB OIDs. This layer has the following values:

dpa

The attribute is semantically the same as the equivalent DPA attribute.

mib

The attribute is semantically the same as the equivalent Printer MIB attribute.

dps

The attribute is defined by NDPS.

vnd

The attribute is defined by a printer vendor.

The vnd designator is provided to enable printer vendors to export unique capabilities of specific printers. This allows a printer vendor to extend an NDPS class by using this arc to define new attributes. The printer vendor is responsible for the administration of the OIDs in this arc. NDPS has no knowledge of the semantics of the attributes in this arc, but it can store the attributes and pass them through the system, making them available to print drivers or other programs provided by the vendor. The values of these attributes must use NDPS syntax.

For example, NDPS has a job object. Most of the attributes of the job object come from DPA. The Printer MIB does not have a job object, but NDPS supports the mib designator for all object classes. NDPS adds some attributes that are not defined in DPA. A printer vendor can also add some attributes. So, NDPS identifies an OID for the NDPS job object and additional OIDs for attributes, including the designator for the source of the attribute.

ndps-oc-job = ndps-oc.1;"Job"
ndps-oc-job-dpa = ndps-oc-job.0;"Job DPA Attributes"
ndps-oc-job-mib = ndps-oc-job.1;"Job MIB Attributes"
ndps-oc-job-dps = ndps-oc-job.2;"Job NDPS Attributes"
ndps-oc-job-vnd = ndps-oc-job.3.zzz;"Job Attributes for company zzz"

Specific attributes for that NDPS class are defined using the OID for the job class attribute map. For example, for attributes that come from DPA, the ndps-oc-job-dpa OID is used:

ndps-att-job-owner = ndps-oc-job-dpa.3

For attribute www that comes from the Printer MIB, the ndps-oc-xxx-mib OID is used:

ndps-att-xxx-www = ndps-oc-xxx-mib.yyy

For attributes that come from the unique characteristics of NDPS, the ndps-oc-xxx-dps OID is used:

ndps-att-xxx-www = ndps-oc-xxx-dps.yyy

For vendor-specific extensions of NDPS, the vendor zzz uses its number from the following:

Iso.org.dod.internet.private.enterprise = 1.3.6.1.4.1.
Vendor_ZZZ_id = 1.3.6.1.4.1.zzz

For attribute extensions to classes that come from an NDPS vendor zzz, the ndps-oc-xxx-vnd OID is used:

ndps-att-xxx-www = ndps-oc-xxx-vnd.zzz.yyy

NOTE:  This naming convention relies on each vendor to administer its own extensions to NDPS.

In summary, the attribute naming convention for NDPS attributes is as follows:

ndps-oc.<class>.<discriminator>.[vendor].<attribute>

ndps-oc equals 2.16.840.1.113719.1.4.0
<class> is from the NDPS class OID list (see NDPS Object Classes ).
<discriminator> is 0 for DPA, 1 for MIB, 2 for NDPS specific, and 3 for vendor specific.
[Vendor] is only present if <discriminator> is 3. The value for vendor is taken from the enterprise number for the company as registered with IANA for ISO. This is the number that is used under the Iso.org.dod.internet.private.enterprise (1.3.6.1.4.1) arc.
<attribute> is the identifier assigned to the attribute. The well-known attributes are those from DPA, Printer MIB, and those specific to NDPS.


Value Classes

Even though the attribute OIDs for NDPS objects are unique to NDPS, the values need not be. If an attribute in an NDPS object is the same as the attribute in one of the DPA objects, then even though the attributes have unique OIDs to show their membership to the correct object, it is neither necessary nor desirable that the values of that attribute be unique, especially if the value is an OID. For example, the values of the ndps-att-current-job-state attribute that come from DPA are implemented with the DPA-defined OIDs. The Printer MIB standard does not define OIDs for any values.

OIDs are created in each arc of the global OID tree for value classes, and then those value class OIDs are used to create OIDs for specific values.

For example, DPA defines the following OIDs for value classes:

id-vc = DPAOID.6 // DPA Value Classes

Then, specific values are defined using the id-vc OID. For example,

id-vc-state = id-vc.0
id-val-state-ready = id-vc-state.1

NDPS value classes are defined from the following:

ndps-vc = NA-dps.1 // NDPS-specific Value Class

Values that are unique to NDPS are then built from these value class OIDs. For example,

ndps-vc-transfer-method = ndps-vc.1
ndps-val-transfer-method-ndps-data-xfer = ndps-vc-transfer- method.0


Attribute Value Syntaxes

NDPS does not use syntax OIDs because performing OID comparisons each time an attribute is referenced is too expensive both in memory and performance. The syntax types change little compared with the attributes themselves, so NDPS uses defined enumerations to designate the syntax types. The following is a list of the attribute value syntaxes and their enumeration values:

0

NWDP_AVT_NULL

1

NWDP_AVT_TEXT

2

NWDP_AVT_DESCRIPTIVE_NAME

3

NWDP_AVT_DESCRIPTOR

4

NWDP_AVT_MESSAGE

5

NWDP_AVT_ERROR_MESSAGE

6

NWDP_AVT_SIMPLE_NAME

7

NWDP_AVT_DISTINGUISHED_NAME_STR

8

NWDP_AVT_DIST_NAME_STR_SEQ

9

NWDP_AVT_DELTA_TIME

10

NWDP_AVT_TIME

11

NWDP_AVT_INTEGER

12

NWDP_AVT_INTEGER_SEQ

13

NWDP_AVT_CARDINAL

14

NWDP_AVT_CARDINAL_SEQ

15

NWDP_AVT_POSITIVE_INTEGER

16

NWDP_AVT_INTEGER_RANGE

17

NWDP_AVT_CARDINAL_RANGE

18

NWDP_AVT_MAXIMUM_INTEGER

19

NWDP_AVT_MINIMUM_INTEGER

20

NWDP_AVT_INTEGER_64

21

NWDP_AVT_INTEGER_64_SEQ

22

NWDP_AVT_CARDINAL_64

23

NWDP_AVT_CARDINAL_64_SEQ

24

NWDP_AVT_POSITIVE_INTEGER_64

25

NWDP_AVT_INTEGER_64_RANGE

26

NWDP_AVT_CARDINAL_64_RANGE

27

NWDP_AVT_MAXIMUM_INTEGER_64

28

NWDP_AVT_MINIMUM_INTEGER_64

29

NWDP_AVT_REAL

30

NWDP_AVT_REAL_SEQ

31

NWDP_AVT_NON_NEGATIVE_REAL

32

NWDP_AVT_REAL_RANGE

33

NWDP_AVT_NON_NEGATIV_REAL_RANGE

34

NWDP_AVT_BOOLEAN

35

NWDP_AVT_PERCENT

36

NWDP_AVT_OBJECT_IDENTIFIER

37

NWDP_AVT_OBJECT_IDENTIFIER_SEQ

38

NWDP_AVT_NAME_OR_OID

39

NWDP_AVT_NAME_OR_OID_SEQ

40

NWDP_AVT_DISTINGUISHED_NAME

41

NWDP_AVT_RDN_SEQUENCE

42

NWDP_AVT_REALIZATION

43

NWDP_AVT_MEDIUM_DIMENSIONS

44

NWDP_AVT_DIMENSION

45

NWDP_AVT_XY_DIMENSIONS

46

NWDP_AVT_LOCATIONS

47

NWDP_AVT_AREA

48

NWDP_AVT_AREA_SEQ

49

NWDP_AVT_EDGE

50

NWDP_AVT_FONT_REFERENCE

51

NWDP_AVT_CARDINAL_OR_OID

52

NWDP_AVT_OID_CARDINAL_MAP

53

NWDP_AVT_CARDINAL_OR_NAM_OR_OID

54

NWDP_AVT_POSITIVE_INT_OR_OID

55

NWDP_AVT_EVENT_HANDLING_PROFILE

56

NWDP_AVT_OCTET_STRING

57

NWDP_AVT_PRIORITY

58

NWDP_AVT_LOCALE

59

NWDP_AVT_METHOD_DELIVERY_ADDR

60

NWDP_AVT_OBJECT_IDENTIFICATION

61

NWDP_AVT_RESULTS_PROFILE

62

NWDP_AVT_CRITERIA

63

NWDP_AVT_JOB_PASSWORD

64

NWDP_AVT_JOB_LEVEL

65

NWDP_AVT_JOB_CATEGORIES

66

NWDP_AVT_PRINT_CHECKPOINT

67

NWDP_AVT_IGNORED_ATTRIBUTE

68

NWDP_AVT_RESOURCE

69

NWDP_AVT_MEDIUM_SUBSTITUTION

70

NWDP_AVT_FONT_SUBSTITUTION

71

NWDP_AVT_RESOURCE_CONTEXT_SEQ

72

NWDP_AVT_SIDES

73

NWDP_AVT_PAGE_SELECT_SEQ

74

NWDP_AVT_PAGE_MEDIA_SELECT

75

NWDP_AVT_DOCUMENT_CONTENT

76

NWDP_AVT_PAGE_SIZE

77

NWDP_AVT_PRESENTATION_DIRECTION

78

NWDP_AVT_PAGE_ORDER

79

NWDP_AVT_FILE_REFERENCE

80

NWDP_AVT_MEDIUM_SOURCE_SIZE

81

NWDP_AVT_INPUT_TRAY_MEDIUM

82

NWDP_AVT_OUTPUT_BINS_CHARS

83

NWDP_AVT_PAGE_ID_TYPE

84

NWDP_AVT_LEVEL_RANGE

85

NWDP_AVT_CATEGORY_SET

86

NWDP_AVT_NUMBERS_UP_SUPPORTED

87

NWDP_AVT_FINISHING

88

NWDP_AVT_PRT_CONTAINED_OBJ_ID

89

NWDP_AVT_PRT_CONFIG_OBJECT_ID

90

NWDP_AVT_TYPED_NAME

91

NWDP_AVT_NET_ADDRESS

92

NWDP_AVT_XY_DIMENSIONS_VALUE

93

NWDP_AVT_NAME_OR_OID_DIM_MAP

94

NWDP_AVT_PRINTER_STATE_REASON

95

NWDP_AVT_ENUMERATION

96

NWDP_AVT_QUALIFIED_NAME

97

NWDP_AVT_QUALIFIED_NAME_SET

98

NWDP_AVT_COLORANT_SET

99

NWDP_AVT_RESOURCE_PRINTER_ID

100

NWDP_AVT_EVENT_OBJECT_ID

101

NWDP_AVT_QUALIFIED_NAME_MAP

102

NWDP_AVT_FILE_PATH

103

NWDP_AVT_URI

104

NWDP_AVT_CARDNL_OR_ENUM_OR_TIME

105

NWDP_AVT_PRT_CONTAIN_OBJ_ID_SET

106

NWDP_AVT_OCTET_STRING_PAIR

107

NWDP_AVT_OCTET_STRING_INT_PAIR