1RFC1065-SMI DEFINITIONS ::= BEGIN 2 3EXPORTS -- EVERYTHING 4 internet, directory, mgmt, 5 experimental, private, enterprises, 6 OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax, 7 ApplicationSyntax, NetworkAddress, IpAddress, 8 Counter, Gauge, TimeTicks, Opaque; 9 10 -- the path to the root 11 12 internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } 13 14 directory OBJECT IDENTIFIER ::= { internet 1 } 15 16 mgmt OBJECT IDENTIFIER ::= { internet 2 } 17 18 experimental OBJECT IDENTIFIER ::= { internet 3 } 19 20 private OBJECT IDENTIFIER ::= { internet 4 } 21 enterprises OBJECT IDENTIFIER ::= { private 1 } 22 23 24 -- definition of object types 25 26 OBJECT-TYPE MACRO ::= 27 BEGIN 28 TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax) 29 "ACCESS" Access 30 "STATUS" Status 31 VALUE NOTATION ::= value (VALUE ObjectName) 32 33 Access ::= "read-only" 34 | "read-write" 35 | "write-only" 36 | "not-accessible" 37 Status ::= "mandatory" 38 | "optional" 39 | "obsolete" 40 END 41 42 -- names of objects in the MIB 43 44 ObjectName ::= 45 OBJECT IDENTIFIER 46 47 48 49 -- syntax of objects in the MIB 50 51 ObjectSyntax ::= 52 CHOICE { 53 simple 54 SimpleSyntax, 55 56 -- note that simple SEQUENCEs are not directly 57 -- mentioned here to keep things simple (i.e., 58 -- prevent mis-use). However, application-wide 59 -- types which are IMPLICITly encoded simple 60 -- SEQUENCEs may appear in the following CHOICE 61 62 application-wide 63 ApplicationSyntax 64 } 65 66 SimpleSyntax ::= 67 CHOICE { 68 number 69 INTEGER, 70 71 string 72 OCTET STRING, 73 74 object 75 OBJECT IDENTIFIER, 76 77 empty 78 NULL 79 } 80 81 ApplicationSyntax ::= 82 CHOICE { 83 address 84 NetworkAddress, 85 86 counter 87 Counter, 88 89 gauge 90 Gauge, 91 92 ticks 93 TimeTicks, 94 95 arbitrary 96 Opaque 97 98 99 -- other application-wide types, as they are 100 -- defined, will be added here 101 } 102 103 104 -- application-wide types 105 106 NetworkAddress ::= 107 CHOICE { 108 internet 109 IpAddress 110 } 111 112 IpAddress ::= 113 [APPLICATION 0] -- in network-byte order 114 IMPLICIT OCTET STRING (SIZE (4)) 115 116 Counter ::= 117 [APPLICATION 1] 118 IMPLICIT INTEGER (0..4294967295) 119 120 Gauge ::= 121 [APPLICATION 2] 122 IMPLICIT INTEGER (0..4294967295) 123 124 TimeTicks ::= 125 [APPLICATION 3] 126 IMPLICIT INTEGER 127 128 Opaque ::= 129 [APPLICATION 4] -- arbitrary ASN.1 value, 130 IMPLICIT OCTET STRING -- "double-wrapped" 131 132 END 133