1RFC1155-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 -- syntax of objects in the MIB 48 49 ObjectSyntax ::= 50 CHOICE { 51 simple 52 SimpleSyntax, 53 54 -- note that simple SEQUENCEs are not directly 55 -- mentioned here to keep things simple (i.e., 56 -- prevent mis-use). However, application-wide 57 -- types which are IMPLICITly encoded simple 58 -- SEQUENCEs may appear in the following CHOICE 59 60 application-wide 61 ApplicationSyntax 62 } 63 64 SimpleSyntax ::= 65 CHOICE { 66 number 67 INTEGER, 68 69 string 70 OCTET STRING, 71 72 object 73 OBJECT IDENTIFIER, 74 75 empty 76 NULL 77 } 78 79 ApplicationSyntax ::= 80 CHOICE { 81 address 82 NetworkAddress, 83 84 counter 85 Counter, 86 87 gauge 88 Gauge, 89 90 ticks 91 TimeTicks, 92 93 arbitrary 94 Opaque 95 96 -- other application-wide types, as they are 97 -- defined, will be added here 98 } 99 100 101 -- application-wide types 102 103 NetworkAddress ::= 104 CHOICE { 105 internet 106 IpAddress 107 } 108 109 IpAddress ::= 110 [APPLICATION 0] -- in network-byte order 111 IMPLICIT OCTET STRING (SIZE (4)) 112 113 Counter ::= 114 [APPLICATION 1] 115 IMPLICIT INTEGER (0..4294967295) 116 117 Gauge ::= 118 [APPLICATION 2] 119 IMPLICIT INTEGER (0..4294967295) 120 121 TimeTicks ::= 122 [APPLICATION 3] 123 IMPLICIT INTEGER (0..4294967295) 124 125 Opaque ::= 126 [APPLICATION 4] -- arbitrary ASN.1 value, 127 IMPLICIT OCTET STRING -- "double-wrapped" 128 129 END 130