telemetry-snmp 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rspec.yml +44 -0
  3. data/.github/workflows/rubocop.yml +28 -0
  4. data/.github/workflows/sourcehawk-scan.yml +20 -0
  5. data/.gitignore +14 -0
  6. data/.rspec +4 -0
  7. data/.rubocop.yml +26 -0
  8. data/CHANGELOG.md +4 -0
  9. data/CODE_OF_CONDUCT.md +75 -0
  10. data/CONTRIBUTING.md +54 -0
  11. data/Gemfile +10 -0
  12. data/INDIVIDUAL_CONTRIBUTOR_LICENSE.md +30 -0
  13. data/LICENSE +201 -0
  14. data/NOTICE.txt +9 -0
  15. data/README.md +54 -0
  16. data/attribution.txt +1 -0
  17. data/config.ru +15 -0
  18. data/exe/snmp_collector +55 -0
  19. data/lib/telemetry/snmp.rb +23 -0
  20. data/lib/telemetry/snmp/api.rb +55 -0
  21. data/lib/telemetry/snmp/auth.rb +54 -0
  22. data/lib/telemetry/snmp/auth/defaults.rb +41 -0
  23. data/lib/telemetry/snmp/client.rb +104 -0
  24. data/lib/telemetry/snmp/controllers/device_creds.rb +105 -0
  25. data/lib/telemetry/snmp/controllers/devices.rb +94 -0
  26. data/lib/telemetry/snmp/controllers/oid_groups.rb +71 -0
  27. data/lib/telemetry/snmp/controllers/oids.rb +80 -0
  28. data/lib/telemetry/snmp/controllers/users.rb +81 -0
  29. data/lib/telemetry/snmp/controllers/walks.rb +89 -0
  30. data/lib/telemetry/snmp/data.rb +69 -0
  31. data/lib/telemetry/snmp/data/default_opts.rb +73 -0
  32. data/lib/telemetry/snmp/data/migrations/001_device_creds.rb +19 -0
  33. data/lib/telemetry/snmp/data/migrations/002_create_devices_table.rb +31 -0
  34. data/lib/telemetry/snmp/data/migrations/003_create_oids_tables.rb +16 -0
  35. data/lib/telemetry/snmp/data/migrations/004_create_oid_groups.rb +15 -0
  36. data/lib/telemetry/snmp/data/migrations/005_create_oids_oid_groups.rb +17 -0
  37. data/lib/telemetry/snmp/data/migrations/006_device_to_oid_group.rb +15 -0
  38. data/lib/telemetry/snmp/data/migrations/007_create_users.rb +20 -0
  39. data/lib/telemetry/snmp/data/migrations/008_create_walks_table.rb +14 -0
  40. data/lib/telemetry/snmp/data/migrations/009_create_tag_name_column.rb +7 -0
  41. data/lib/telemetry/snmp/data/migrations/010_create_user_audit_table.rb +18 -0
  42. data/lib/telemetry/snmp/data/models/device.rb +11 -0
  43. data/lib/telemetry/snmp/data/models/device_cred.rb +11 -0
  44. data/lib/telemetry/snmp/data/models/oid.rb +10 -0
  45. data/lib/telemetry/snmp/data/models/oid_group.rb +10 -0
  46. data/lib/telemetry/snmp/data/models/oid_oid_groups.rb +10 -0
  47. data/lib/telemetry/snmp/data/models/oid_walk.rb +10 -0
  48. data/lib/telemetry/snmp/data/models/user.rb +10 -0
  49. data/lib/telemetry/snmp/data/models/user_audit_log.rb +19 -0
  50. data/lib/telemetry/snmp/mibs/AGENTX-MIB.txt +527 -0
  51. data/lib/telemetry/snmp/mibs/AIRPORT-BASESTATION-3-MIB.txt +461 -0
  52. data/lib/telemetry/snmp/mibs/BRIDGE-MIB.txt +1472 -0
  53. data/lib/telemetry/snmp/mibs/DISMAN-EVENT-MIB.txt +1882 -0
  54. data/lib/telemetry/snmp/mibs/DISMAN-SCHEDULE-MIB.txt +699 -0
  55. data/lib/telemetry/snmp/mibs/DISMAN-SCRIPT-MIB.txt +1764 -0
  56. data/lib/telemetry/snmp/mibs/EtherLike-MIB.txt +1862 -0
  57. data/lib/telemetry/snmp/mibs/HCNUM-TC.txt +118 -0
  58. data/lib/telemetry/snmp/mibs/HOST-RESOURCES-MIB.txt +1540 -0
  59. data/lib/telemetry/snmp/mibs/HOST-RESOURCES-TYPES.txt +389 -0
  60. data/lib/telemetry/snmp/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt +123 -0
  61. data/lib/telemetry/snmp/mibs/IANA-LANGUAGE-MIB.txt +123 -0
  62. data/lib/telemetry/snmp/mibs/IANA-RTPROTO-MIB.txt +91 -0
  63. data/lib/telemetry/snmp/mibs/IANAifType-MIB.txt +619 -0
  64. data/lib/telemetry/snmp/mibs/IF-INVERTED-STACK-MIB.txt +149 -0
  65. data/lib/telemetry/snmp/mibs/IF-MIB.txt +1814 -0
  66. data/lib/telemetry/snmp/mibs/INET-ADDRESS-MIB.txt +402 -0
  67. data/lib/telemetry/snmp/mibs/IP-FORWARD-MIB.txt +1277 -0
  68. data/lib/telemetry/snmp/mibs/IP-MIB.txt +4993 -0
  69. data/lib/telemetry/snmp/mibs/IPV6-FLOW-LABEL-MIB.txt +58 -0
  70. data/lib/telemetry/snmp/mibs/IPV6-ICMP-MIB.txt +529 -0
  71. data/lib/telemetry/snmp/mibs/IPV6-MIB.txt +1443 -0
  72. data/lib/telemetry/snmp/mibs/IPV6-TC.txt +67 -0
  73. data/lib/telemetry/snmp/mibs/IPV6-TCP-MIB.txt +211 -0
  74. data/lib/telemetry/snmp/mibs/IPV6-UDP-MIB.txt +141 -0
  75. data/lib/telemetry/snmp/mibs/NET-SNMP-AGENT-MIB.txt +554 -0
  76. data/lib/telemetry/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt +285 -0
  77. data/lib/telemetry/snmp/mibs/NET-SNMP-EXTEND-MIB.txt +325 -0
  78. data/lib/telemetry/snmp/mibs/NET-SNMP-MIB.txt +67 -0
  79. data/lib/telemetry/snmp/mibs/NET-SNMP-PASS-MIB.txt +124 -0
  80. data/lib/telemetry/snmp/mibs/NET-SNMP-TC.txt +128 -0
  81. data/lib/telemetry/snmp/mibs/NET-SNMP-VACM-MIB.txt +154 -0
  82. data/lib/telemetry/snmp/mibs/NOTIFICATION-LOG-MIB.txt +753 -0
  83. data/lib/telemetry/snmp/mibs/PAN-COMMON-MIB.md5 +1 -0
  84. data/lib/telemetry/snmp/mibs/PAN-COMMON-MIB.my +2293 -0
  85. data/lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.md5 +1 -0
  86. data/lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.my +293 -0
  87. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.md5 +1 -0
  88. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.my +84 -0
  89. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.md5 +1 -0
  90. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.my +68 -0
  91. data/lib/telemetry/snmp/mibs/PAN-LC-MIB.md5 +1 -0
  92. data/lib/telemetry/snmp/mibs/PAN-LC-MIB.my +204 -0
  93. data/lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.md5 +1 -0
  94. data/lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.my +305 -0
  95. data/lib/telemetry/snmp/mibs/PAN-TRAPS.md5 +1 -0
  96. data/lib/telemetry/snmp/mibs/PAN-TRAPS.my +7809 -0
  97. data/lib/telemetry/snmp/mibs/RFC-1215.txt +38 -0
  98. data/lib/telemetry/snmp/mibs/RFC1155-SMI.txt +119 -0
  99. data/lib/telemetry/snmp/mibs/RFC1213-MIB.txt +2613 -0
  100. data/lib/telemetry/snmp/mibs/RMON-MIB.txt +3980 -0
  101. data/lib/telemetry/snmp/mibs/SCTP-MIB.txt +1342 -0
  102. data/lib/telemetry/snmp/mibs/SMUX-MIB.txt +160 -0
  103. data/lib/telemetry/snmp/mibs/SNMP-COMMUNITY-MIB.txt +429 -0
  104. data/lib/telemetry/snmp/mibs/SNMP-FRAMEWORK-MIB.txt +526 -0
  105. data/lib/telemetry/snmp/mibs/SNMP-MPD-MIB.txt +145 -0
  106. data/lib/telemetry/snmp/mibs/SNMP-NOTIFICATION-MIB.txt +589 -0
  107. data/lib/telemetry/snmp/mibs/SNMP-PROXY-MIB.txt +294 -0
  108. data/lib/telemetry/snmp/mibs/SNMP-TARGET-MIB.txt +660 -0
  109. data/lib/telemetry/snmp/mibs/SNMP-USER-BASED-SM-MIB.txt +912 -0
  110. data/lib/telemetry/snmp/mibs/SNMP-USM-AES-MIB.txt +62 -0
  111. data/lib/telemetry/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.txt +532 -0
  112. data/lib/telemetry/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.txt +830 -0
  113. data/lib/telemetry/snmp/mibs/SNMPv2-CONF.txt +322 -0
  114. data/lib/telemetry/snmp/mibs/SNMPv2-MIB.txt +854 -0
  115. data/lib/telemetry/snmp/mibs/SNMPv2-SMI.txt +344 -0
  116. data/lib/telemetry/snmp/mibs/SNMPv2-TC.txt +772 -0
  117. data/lib/telemetry/snmp/mibs/SNMPv2-TM.txt +176 -0
  118. data/lib/telemetry/snmp/mibs/TCP-MIB.txt +785 -0
  119. data/lib/telemetry/snmp/mibs/TRANSPORT-ADDRESS-MIB.txt +421 -0
  120. data/lib/telemetry/snmp/mibs/TUNNEL-MIB.txt +738 -0
  121. data/lib/telemetry/snmp/mibs/UCD-DEMO-MIB.txt +74 -0
  122. data/lib/telemetry/snmp/mibs/UCD-DISKIO-MIB.txt +171 -0
  123. data/lib/telemetry/snmp/mibs/UCD-DLMOD-MIB.txt +124 -0
  124. data/lib/telemetry/snmp/mibs/UCD-IPFWACC-MIB.txt +327 -0
  125. data/lib/telemetry/snmp/mibs/UCD-SNMP-MIB.txt +1712 -0
  126. data/lib/telemetry/snmp/mibs/UDP-MIB.txt +549 -0
  127. data/lib/telemetry/snmp/publisher.rb +130 -0
  128. data/lib/telemetry/snmp/version.rb +7 -0
  129. data/sourcehawk.yml +4 -0
  130. data/telemetry-snmp.gemspec +48 -0
  131. metadata +456 -0
@@ -0,0 +1,149 @@
1
+ IF-INVERTED-STACK-MIB DEFINITIONS ::= BEGIN
2
+
3
+ IMPORTS
4
+ MODULE-IDENTITY, OBJECT-TYPE, mib-2 FROM SNMPv2-SMI
5
+ RowStatus FROM SNMPv2-TC
6
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
7
+ ifStackGroup2,
8
+ ifStackHigherLayer, ifStackLowerLayer FROM IF-MIB;
9
+
10
+ ifInvertedStackMIB MODULE-IDENTITY
11
+ LAST-UPDATED "200006140000Z"
12
+ ORGANIZATION "IETF Interfaces MIB Working Group"
13
+ CONTACT-INFO
14
+ " Keith McCloghrie
15
+ Cisco Systems, Inc.
16
+ 170 West Tasman Drive
17
+ San Jose, CA 95134-1706
18
+ US
19
+
20
+ 408-526-5260
21
+ kzm@cisco.com"
22
+ DESCRIPTION
23
+ "The MIB module which provides the Inverted Stack Table for
24
+ interface sub-layers."
25
+ REVISION "200006140000Z"
26
+ DESCRIPTION
27
+ "Initial revision, published as RFC 2864"
28
+ ::= { mib-2 77 }
29
+
30
+ ifInvMIBObjects OBJECT IDENTIFIER ::= { ifInvertedStackMIB 1 }
31
+
32
+ --
33
+ -- The Inverted Interface Stack Group
34
+ --
35
+
36
+ ifInvStackTable OBJECT-TYPE
37
+ SYNTAX SEQUENCE OF IfInvStackEntry
38
+ MAX-ACCESS not-accessible
39
+ STATUS current
40
+ DESCRIPTION
41
+ "A table containing information on the relationships between
42
+
43
+ the multiple sub-layers of network interfaces. In
44
+ particular, it contains information on which sub-layers run
45
+ 'underneath' which other sub-layers, where each sub-layer
46
+ corresponds to a conceptual row in the ifTable. For
47
+ example, when the sub-layer with ifIndex value x runs
48
+ underneath the sub-layer with ifIndex value y, then this
49
+ table contains:
50
+
51
+ ifInvStackStatus.x.y=active
52
+
53
+ For each ifIndex value, z, which identifies an active
54
+ interface, there are always at least two instantiated rows
55
+ in this table associated with z. For one of these rows, z
56
+ is the value of ifStackHigherLayer; for the other, z is the
57
+ value of ifStackLowerLayer. (If z is not involved in
58
+ multiplexing, then these are the only two rows associated
59
+ with z.)
60
+
61
+ For example, two rows exist even for an interface which has
62
+ no others stacked on top or below it:
63
+
64
+ ifInvStackStatus.z.0=active
65
+ ifInvStackStatus.0.z=active
66
+
67
+ This table contains exactly the same number of rows as the
68
+ ifStackTable, but the rows appear in a different order."
69
+ REFERENCE
70
+ "ifStackTable of RFC 2863"
71
+ ::= { ifInvMIBObjects 1 }
72
+
73
+ ifInvStackEntry OBJECT-TYPE
74
+ SYNTAX IfInvStackEntry
75
+ MAX-ACCESS not-accessible
76
+ STATUS current
77
+ DESCRIPTION
78
+ "Information on a particular relationship between two sub-
79
+ layers, specifying that one sub-layer runs underneath the
80
+ other sub-layer. Each sub-layer corresponds to a conceptual
81
+ row in the ifTable."
82
+ INDEX { ifStackLowerLayer, ifStackHigherLayer }
83
+ ::= { ifInvStackTable 1 }
84
+
85
+ IfInvStackEntry ::=
86
+ SEQUENCE {
87
+ ifInvStackStatus RowStatus
88
+ }
89
+
90
+ ifInvStackStatus OBJECT-TYPE
91
+ SYNTAX RowStatus
92
+ MAX-ACCESS read-only
93
+ STATUS current
94
+ DESCRIPTION
95
+ "The status of the relationship between two sub-layers.
96
+
97
+ An instance of this object exists for each instance of the
98
+ ifStackStatus object, and vice versa. For example, if the
99
+ variable ifStackStatus.H.L exists, then the variable
100
+ ifInvStackStatus.L.H must also exist, and vice versa. In
101
+ addition, the two variables always have the same value.
102
+
103
+ However, unlike ifStackStatus, the ifInvStackStatus object
104
+ is NOT write-able. A network management application wishing
105
+ to change a relationship between sub-layers H and L cannot
106
+ do so by modifying the value of ifInvStackStatus.L.H, but
107
+ must instead modify the value of ifStackStatus.H.L. After
108
+ the ifStackTable is modified, the change will be reflected
109
+ in this table."
110
+ ::= { ifInvStackEntry 1 }
111
+
112
+ -- conformance information
113
+
114
+ ifInvConformance OBJECT IDENTIFIER ::= { ifInvMIBObjects 2 }
115
+
116
+ ifInvGroups OBJECT IDENTIFIER ::= { ifInvConformance 1 }
117
+ ifInvCompliances OBJECT IDENTIFIER ::= { ifInvConformance 2 }
118
+
119
+ -- compliance statements
120
+
121
+ ifInvCompliance MODULE-COMPLIANCE
122
+ STATUS current
123
+ DESCRIPTION
124
+ "The compliance statement for SNMP entities which provide
125
+ inverted information on the layering of network interfaces."
126
+
127
+ MODULE -- this module
128
+ MANDATORY-GROUPS { ifInvStackGroup }
129
+
130
+ OBJECT ifInvStackStatus
131
+ SYNTAX INTEGER { active(1) }
132
+ DESCRIPTION
133
+ "Support is only required for 'active'."
134
+
135
+ MODULE IF-MIB
136
+ MANDATORY-GROUPS { ifStackGroup2 }
137
+ ::= { ifInvCompliances 1 }
138
+
139
+ -- units of conformance
140
+
141
+ ifInvStackGroup OBJECT-GROUP
142
+ OBJECTS { ifInvStackStatus }
143
+ STATUS current
144
+ DESCRIPTION
145
+ "A collection of objects providing inverted information on
146
+ the layering of MIB-II interfaces."
147
+ ::= { ifInvGroups 1 }
148
+
149
+ END
@@ -0,0 +1,1814 @@
1
+ IF-MIB DEFINITIONS ::= BEGIN
2
+
3
+ IMPORTS
4
+ MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64,
5
+ Integer32, TimeTicks, mib-2,
6
+ NOTIFICATION-TYPE FROM SNMPv2-SMI
7
+ TEXTUAL-CONVENTION, DisplayString,
8
+ PhysAddress, TruthValue, RowStatus,
9
+ TimeStamp, AutonomousType, TestAndIncr FROM SNMPv2-TC
10
+ MODULE-COMPLIANCE, OBJECT-GROUP,
11
+ NOTIFICATION-GROUP FROM SNMPv2-CONF
12
+ snmpTraps FROM SNMPv2-MIB
13
+ IANAifType FROM IANAifType-MIB;
14
+
15
+ ifMIB MODULE-IDENTITY
16
+ LAST-UPDATED "200006140000Z"
17
+ ORGANIZATION "IETF Interfaces MIB Working Group"
18
+ CONTACT-INFO
19
+ " Keith McCloghrie
20
+ Cisco Systems, Inc.
21
+ 170 West Tasman Drive
22
+ San Jose, CA 95134-1706
23
+ US
24
+
25
+ 408-526-5260
26
+ kzm@cisco.com"
27
+ DESCRIPTION
28
+ "The MIB module to describe generic objects for network
29
+ interface sub-layers. This MIB is an updated version of
30
+ MIB-II's ifTable, and incorporates the extensions defined in
31
+ RFC 1229."
32
+
33
+ REVISION "200006140000Z"
34
+ DESCRIPTION
35
+ "Clarifications agreed upon by the Interfaces MIB WG, and
36
+ published as RFC 2863."
37
+ REVISION "199602282155Z"
38
+ DESCRIPTION
39
+ "Revisions made by the Interfaces MIB WG, and published in
40
+ RFC 2233."
41
+ REVISION "199311082155Z"
42
+ DESCRIPTION
43
+ "Initial revision, published as part of RFC 1573."
44
+ ::= { mib-2 31 }
45
+
46
+ ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }
47
+
48
+ interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
49
+
50
+ --
51
+ -- Textual Conventions
52
+ --
53
+
54
+ -- OwnerString has the same semantics as used in RFC 1271
55
+
56
+ OwnerString ::= TEXTUAL-CONVENTION
57
+ DISPLAY-HINT "255a"
58
+ STATUS deprecated
59
+ DESCRIPTION
60
+ "This data type is used to model an administratively
61
+ assigned name of the owner of a resource. This information
62
+ is taken from the NVT ASCII character set. It is suggested
63
+ that this name contain one or more of the following: ASCII
64
+ form of the manager station's transport address, management
65
+ station name (e.g., domain name), network management
66
+ personnel's name, location, or phone number. In some cases
67
+ the agent itself will be the owner of an entry. In these
68
+ cases, this string shall be set to a string starting with
69
+ 'agent'."
70
+ SYNTAX OCTET STRING (SIZE(0..255))
71
+
72
+ -- InterfaceIndex contains the semantics of ifIndex and should be used
73
+ -- for any objects defined in other MIB modules that need these semantics.
74
+
75
+ InterfaceIndex ::= TEXTUAL-CONVENTION
76
+ DISPLAY-HINT "d"
77
+ STATUS current
78
+ DESCRIPTION
79
+ "A unique value, greater than zero, for each interface or
80
+ interface sub-layer in the managed system. It is
81
+ recommended that values are assigned contiguously starting
82
+ from 1. The value for each interface sub-layer must remain
83
+ constant at least from one re-initialization of the entity's
84
+ network management system to the next re-initialization."
85
+ SYNTAX Integer32 (1..2147483647)
86
+
87
+ InterfaceIndexOrZero ::= TEXTUAL-CONVENTION
88
+ DISPLAY-HINT "d"
89
+ STATUS current
90
+ DESCRIPTION
91
+ "This textual convention is an extension of the
92
+ InterfaceIndex convention. The latter defines a greater
93
+ than zero value used to identify an interface or interface
94
+ sub-layer in the managed system. This extension permits the
95
+ additional value of zero. the value zero is object-specific
96
+ and must therefore be defined as part of the description of
97
+ any object which uses this syntax. Examples of the usage of
98
+ zero might include situations where interface was unknown,
99
+ or when none or all interfaces need to be referenced."
100
+ SYNTAX Integer32 (0..2147483647)
101
+
102
+ ifNumber OBJECT-TYPE
103
+ SYNTAX Integer32
104
+ MAX-ACCESS read-only
105
+ STATUS current
106
+ DESCRIPTION
107
+ "The number of network interfaces (regardless of their
108
+ current state) present on this system."
109
+ ::= { interfaces 1 }
110
+
111
+ ifTableLastChange OBJECT-TYPE
112
+ SYNTAX TimeTicks
113
+ MAX-ACCESS read-only
114
+ STATUS current
115
+ DESCRIPTION
116
+ "The value of sysUpTime at the time of the last creation or
117
+ deletion of an entry in the ifTable. If the number of
118
+ entries has been unchanged since the last re-initialization
119
+ of the local network management subsystem, then this object
120
+ contains a zero value."
121
+ ::= { ifMIBObjects 5 }
122
+
123
+ -- the Interfaces table
124
+
125
+ -- The Interfaces table contains information on the entity's
126
+
127
+ -- interfaces. Each sub-layer below the internetwork-layer
128
+ -- of a network interface is considered to be an interface.
129
+
130
+ ifTable OBJECT-TYPE
131
+ SYNTAX SEQUENCE OF IfEntry
132
+ MAX-ACCESS not-accessible
133
+ STATUS current
134
+ DESCRIPTION
135
+ "A list of interface entries. The number of entries is
136
+ given by the value of ifNumber."
137
+ ::= { interfaces 2 }
138
+
139
+ ifEntry OBJECT-TYPE
140
+ SYNTAX IfEntry
141
+ MAX-ACCESS not-accessible
142
+ STATUS current
143
+ DESCRIPTION
144
+ "An entry containing management information applicable to a
145
+ particular interface."
146
+ INDEX { ifIndex }
147
+ ::= { ifTable 1 }
148
+
149
+ IfEntry ::=
150
+ SEQUENCE {
151
+ ifIndex InterfaceIndex,
152
+ ifDescr DisplayString,
153
+ ifType IANAifType,
154
+ ifMtu Integer32,
155
+ ifSpeed Gauge32,
156
+ ifPhysAddress PhysAddress,
157
+ ifAdminStatus INTEGER,
158
+ ifOperStatus INTEGER,
159
+ ifLastChange TimeTicks,
160
+ ifInOctets Counter32,
161
+ ifInUcastPkts Counter32,
162
+ ifInNUcastPkts Counter32, -- deprecated
163
+ ifInDiscards Counter32,
164
+ ifInErrors Counter32,
165
+ ifInUnknownProtos Counter32,
166
+ ifOutOctets Counter32,
167
+ ifOutUcastPkts Counter32,
168
+ ifOutNUcastPkts Counter32, -- deprecated
169
+ ifOutDiscards Counter32,
170
+ ifOutErrors Counter32,
171
+ ifOutQLen Gauge32, -- deprecated
172
+ ifSpecific OBJECT IDENTIFIER -- deprecated
173
+ }
174
+
175
+ ifIndex OBJECT-TYPE
176
+ SYNTAX InterfaceIndex
177
+ MAX-ACCESS read-only
178
+ STATUS current
179
+ DESCRIPTION
180
+ "A unique value, greater than zero, for each interface. It
181
+ is recommended that values are assigned contiguously
182
+ starting from 1. The value for each interface sub-layer
183
+ must remain constant at least from one re-initialization of
184
+ the entity's network management system to the next re-
185
+ initialization."
186
+ ::= { ifEntry 1 }
187
+
188
+ ifDescr OBJECT-TYPE
189
+ SYNTAX DisplayString (SIZE (0..255))
190
+ MAX-ACCESS read-only
191
+ STATUS current
192
+ DESCRIPTION
193
+ "A textual string containing information about the
194
+ interface. This string should include the name of the
195
+ manufacturer, the product name and the version of the
196
+ interface hardware/software."
197
+ ::= { ifEntry 2 }
198
+
199
+ ifType OBJECT-TYPE
200
+ SYNTAX IANAifType
201
+ MAX-ACCESS read-only
202
+ STATUS current
203
+ DESCRIPTION
204
+ "The type of interface. Additional values for ifType are
205
+ assigned by the Internet Assigned Numbers Authority (IANA),
206
+ through updating the syntax of the IANAifType textual
207
+ convention."
208
+ ::= { ifEntry 3 }
209
+
210
+ ifMtu OBJECT-TYPE
211
+ SYNTAX Integer32
212
+ MAX-ACCESS read-only
213
+ STATUS current
214
+ DESCRIPTION
215
+ "The size of the largest packet which can be sent/received
216
+ on the interface, specified in octets. For interfaces that
217
+ are used for transmitting network datagrams, this is the
218
+ size of the largest network datagram that can be sent on the
219
+ interface."
220
+ ::= { ifEntry 4 }
221
+
222
+ ifSpeed OBJECT-TYPE
223
+ SYNTAX Gauge32
224
+ MAX-ACCESS read-only
225
+ STATUS current
226
+ DESCRIPTION
227
+ "An estimate of the interface's current bandwidth in bits
228
+ per second. For interfaces which do not vary in bandwidth
229
+ or for those where no accurate estimation can be made, this
230
+ object should contain the nominal bandwidth. If the
231
+ bandwidth of the interface is greater than the maximum value
232
+ reportable by this object then this object should report its
233
+ maximum value (4,294,967,295) and ifHighSpeed must be used
234
+ to report the interace's speed. For a sub-layer which has
235
+ no concept of bandwidth, this object should be zero."
236
+ ::= { ifEntry 5 }
237
+
238
+ ifPhysAddress OBJECT-TYPE
239
+ SYNTAX PhysAddress
240
+ MAX-ACCESS read-only
241
+ STATUS current
242
+ DESCRIPTION
243
+ "The interface's address at its protocol sub-layer. For
244
+ example, for an 802.x interface, this object normally
245
+ contains a MAC address. The interface's media-specific MIB
246
+ must define the bit and byte ordering and the format of the
247
+ value of this object. For interfaces which do not have such
248
+ an address (e.g., a serial line), this object should contain
249
+ an octet string of zero length."
250
+ ::= { ifEntry 6 }
251
+
252
+ ifAdminStatus OBJECT-TYPE
253
+ SYNTAX INTEGER {
254
+ up(1), -- ready to pass packets
255
+ down(2),
256
+ testing(3) -- in some test mode
257
+ }
258
+ MAX-ACCESS read-write
259
+ STATUS current
260
+ DESCRIPTION
261
+ "The desired state of the interface. The testing(3) state
262
+ indicates that no operational packets can be passed. When a
263
+ managed system initializes, all interfaces start with
264
+ ifAdminStatus in the down(2) state. As a result of either
265
+ explicit management action or per configuration information
266
+ retained by the managed system, ifAdminStatus is then
267
+ changed to either the up(1) or testing(3) states (or remains
268
+ in the down(2) state)."
269
+ ::= { ifEntry 7 }
270
+
271
+ ifOperStatus OBJECT-TYPE
272
+ SYNTAX INTEGER {
273
+ up(1), -- ready to pass packets
274
+ down(2),
275
+ testing(3), -- in some test mode
276
+ unknown(4), -- status can not be determined
277
+ -- for some reason.
278
+ dormant(5),
279
+ notPresent(6), -- some component is missing
280
+ lowerLayerDown(7) -- down due to state of
281
+ -- lower-layer interface(s)
282
+ }
283
+ MAX-ACCESS read-only
284
+ STATUS current
285
+ DESCRIPTION
286
+ "The current operational state of the interface. The
287
+ testing(3) state indicates that no operational packets can
288
+ be passed. If ifAdminStatus is down(2) then ifOperStatus
289
+ should be down(2). If ifAdminStatus is changed to up(1)
290
+ then ifOperStatus should change to up(1) if the interface is
291
+ ready to transmit and receive network traffic; it should
292
+ change to dormant(5) if the interface is waiting for
293
+ external actions (such as a serial line waiting for an
294
+ incoming connection); it should remain in the down(2) state
295
+ if and only if there is a fault that prevents it from going
296
+ to the up(1) state; it should remain in the notPresent(6)
297
+ state if the interface has missing (typically, hardware)
298
+ components."
299
+ ::= { ifEntry 8 }
300
+
301
+ ifLastChange OBJECT-TYPE
302
+ SYNTAX TimeTicks
303
+ MAX-ACCESS read-only
304
+ STATUS current
305
+ DESCRIPTION
306
+ "The value of sysUpTime at the time the interface entered
307
+ its current operational state. If the current state was
308
+ entered prior to the last re-initialization of the local
309
+ network management subsystem, then this object contains a
310
+ zero value."
311
+ ::= { ifEntry 9 }
312
+
313
+ ifInOctets OBJECT-TYPE
314
+ SYNTAX Counter32
315
+ MAX-ACCESS read-only
316
+ STATUS current
317
+ DESCRIPTION
318
+ "The total number of octets received on the interface,
319
+ including framing characters.
320
+
321
+ Discontinuities in the value of this counter can occur at
322
+ re-initialization of the management system, and at other
323
+ times as indicated by the value of
324
+ ifCounterDiscontinuityTime."
325
+ ::= { ifEntry 10 }
326
+
327
+ ifInUcastPkts OBJECT-TYPE
328
+ SYNTAX Counter32
329
+ MAX-ACCESS read-only
330
+ STATUS current
331
+ DESCRIPTION
332
+ "The number of packets, delivered by this sub-layer to a
333
+ higher (sub-)layer, which were not addressed to a multicast
334
+ or broadcast address at this sub-layer.
335
+
336
+ Discontinuities in the value of this counter can occur at
337
+ re-initialization of the management system, and at other
338
+ times as indicated by the value of
339
+ ifCounterDiscontinuityTime."
340
+ ::= { ifEntry 11 }
341
+
342
+ ifInNUcastPkts OBJECT-TYPE
343
+ SYNTAX Counter32
344
+ MAX-ACCESS read-only
345
+ STATUS deprecated
346
+ DESCRIPTION
347
+ "The number of packets, delivered by this sub-layer to a
348
+ higher (sub-)layer, which were addressed to a multicast or
349
+ broadcast address at this sub-layer.
350
+
351
+ Discontinuities in the value of this counter can occur at
352
+ re-initialization of the management system, and at other
353
+ times as indicated by the value of
354
+ ifCounterDiscontinuityTime.
355
+
356
+ This object is deprecated in favour of ifInMulticastPkts and
357
+ ifInBroadcastPkts."
358
+ ::= { ifEntry 12 }
359
+
360
+ ifInDiscards OBJECT-TYPE
361
+ SYNTAX Counter32
362
+ MAX-ACCESS read-only
363
+ STATUS current
364
+ DESCRIPTION
365
+ "The number of inbound packets which were chosen to be
366
+ discarded even though no errors had been detected to prevent
367
+
368
+ their being deliverable to a higher-layer protocol. One
369
+ possible reason for discarding such a packet could be to
370
+ free up buffer space.
371
+
372
+ Discontinuities in the value of this counter can occur at
373
+ re-initialization of the management system, and at other
374
+ times as indicated by the value of
375
+ ifCounterDiscontinuityTime."
376
+ ::= { ifEntry 13 }
377
+
378
+ ifInErrors OBJECT-TYPE
379
+ SYNTAX Counter32
380
+ MAX-ACCESS read-only
381
+ STATUS current
382
+ DESCRIPTION
383
+ "For packet-oriented interfaces, the number of inbound
384
+ packets that contained errors preventing them from being
385
+ deliverable to a higher-layer protocol. For character-
386
+ oriented or fixed-length interfaces, the number of inbound
387
+ transmission units that contained errors preventing them
388
+ from being deliverable to a higher-layer protocol.
389
+
390
+ Discontinuities in the value of this counter can occur at
391
+ re-initialization of the management system, and at other
392
+ times as indicated by the value of
393
+ ifCounterDiscontinuityTime."
394
+ ::= { ifEntry 14 }
395
+
396
+ ifInUnknownProtos OBJECT-TYPE
397
+ SYNTAX Counter32
398
+ MAX-ACCESS read-only
399
+ STATUS current
400
+ DESCRIPTION
401
+ "For packet-oriented interfaces, the number of packets
402
+ received via the interface which were discarded because of
403
+ an unknown or unsupported protocol. For character-oriented
404
+ or fixed-length interfaces that support protocol
405
+ multiplexing the number of transmission units received via
406
+ the interface which were discarded because of an unknown or
407
+ unsupported protocol. For any interface that does not
408
+ support protocol multiplexing, this counter will always be
409
+ 0.
410
+
411
+ Discontinuities in the value of this counter can occur at
412
+ re-initialization of the management system, and at other
413
+ times as indicated by the value of
414
+ ifCounterDiscontinuityTime."
415
+ ::= { ifEntry 15 }
416
+
417
+ ifOutOctets OBJECT-TYPE
418
+ SYNTAX Counter32
419
+ MAX-ACCESS read-only
420
+ STATUS current
421
+ DESCRIPTION
422
+ "The total number of octets transmitted out of the
423
+ interface, including framing characters.
424
+
425
+ Discontinuities in the value of this counter can occur at
426
+ re-initialization of the management system, and at other
427
+ times as indicated by the value of
428
+ ifCounterDiscontinuityTime."
429
+ ::= { ifEntry 16 }
430
+
431
+ ifOutUcastPkts OBJECT-TYPE
432
+ SYNTAX Counter32
433
+ MAX-ACCESS read-only
434
+ STATUS current
435
+ DESCRIPTION
436
+ "The total number of packets that higher-level protocols
437
+ requested be transmitted, and which were not addressed to a
438
+ multicast or broadcast address at this sub-layer, including
439
+ those that were discarded or not sent.
440
+
441
+ Discontinuities in the value of this counter can occur at
442
+ re-initialization of the management system, and at other
443
+ times as indicated by the value of
444
+ ifCounterDiscontinuityTime."
445
+ ::= { ifEntry 17 }
446
+
447
+ ifOutNUcastPkts OBJECT-TYPE
448
+ SYNTAX Counter32
449
+ MAX-ACCESS read-only
450
+ STATUS deprecated
451
+ DESCRIPTION
452
+ "The total number of packets that higher-level protocols
453
+ requested be transmitted, and which were addressed to a
454
+ multicast or broadcast address at this sub-layer, including
455
+ those that were discarded or not sent.
456
+
457
+ Discontinuities in the value of this counter can occur at
458
+ re-initialization of the management system, and at other
459
+ times as indicated by the value of
460
+ ifCounterDiscontinuityTime.
461
+
462
+ This object is deprecated in favour of ifOutMulticastPkts
463
+ and ifOutBroadcastPkts."
464
+ ::= { ifEntry 18 }
465
+
466
+ ifOutDiscards OBJECT-TYPE
467
+ SYNTAX Counter32
468
+ MAX-ACCESS read-only
469
+ STATUS current
470
+ DESCRIPTION
471
+ "The number of outbound packets which were chosen to be
472
+ discarded even though no errors had been detected to prevent
473
+ their being transmitted. One possible reason for discarding
474
+ such a packet could be to free up buffer space.
475
+
476
+ Discontinuities in the value of this counter can occur at
477
+ re-initialization of the management system, and at other
478
+ times as indicated by the value of
479
+ ifCounterDiscontinuityTime."
480
+ ::= { ifEntry 19 }
481
+
482
+ ifOutErrors OBJECT-TYPE
483
+ SYNTAX Counter32
484
+ MAX-ACCESS read-only
485
+ STATUS current
486
+ DESCRIPTION
487
+ "For packet-oriented interfaces, the number of outbound
488
+ packets that could not be transmitted because of errors.
489
+ For character-oriented or fixed-length interfaces, the
490
+ number of outbound transmission units that could not be
491
+ transmitted because of errors.
492
+
493
+ Discontinuities in the value of this counter can occur at
494
+ re-initialization of the management system, and at other
495
+ times as indicated by the value of
496
+ ifCounterDiscontinuityTime."
497
+ ::= { ifEntry 20 }
498
+
499
+ ifOutQLen OBJECT-TYPE
500
+ SYNTAX Gauge32
501
+ MAX-ACCESS read-only
502
+ STATUS deprecated
503
+ DESCRIPTION
504
+ "The length of the output packet queue (in packets)."
505
+ ::= { ifEntry 21 }
506
+
507
+ ifSpecific OBJECT-TYPE
508
+ SYNTAX OBJECT IDENTIFIER
509
+ MAX-ACCESS read-only
510
+ STATUS deprecated
511
+ DESCRIPTION
512
+ "A reference to MIB definitions specific to the particular
513
+ media being used to realize the interface. It is
514
+
515
+ recommended that this value point to an instance of a MIB
516
+ object in the media-specific MIB, i.e., that this object
517
+ have the semantics associated with the InstancePointer
518
+ textual convention defined in RFC 2579. In fact, it is
519
+ recommended that the media-specific MIB specify what value
520
+ ifSpecific should/can take for values of ifType. If no MIB
521
+ definitions specific to the particular media are available,
522
+ the value should be set to the OBJECT IDENTIFIER { 0 0 }."
523
+ ::= { ifEntry 22 }
524
+
525
+ --
526
+ -- Extension to the interface table
527
+ --
528
+ -- This table replaces the ifExtnsTable table.
529
+ --
530
+
531
+ ifXTable OBJECT-TYPE
532
+ SYNTAX SEQUENCE OF IfXEntry
533
+ MAX-ACCESS not-accessible
534
+ STATUS current
535
+ DESCRIPTION
536
+ "A list of interface entries. The number of entries is
537
+ given by the value of ifNumber. This table contains
538
+ additional objects for the interface table."
539
+ ::= { ifMIBObjects 1 }
540
+
541
+ ifXEntry OBJECT-TYPE
542
+ SYNTAX IfXEntry
543
+ MAX-ACCESS not-accessible
544
+ STATUS current
545
+ DESCRIPTION
546
+ "An entry containing additional management information
547
+ applicable to a particular interface."
548
+ AUGMENTS { ifEntry }
549
+ ::= { ifXTable 1 }
550
+
551
+ IfXEntry ::=
552
+ SEQUENCE {
553
+ ifName DisplayString,
554
+ ifInMulticastPkts Counter32,
555
+ ifInBroadcastPkts Counter32,
556
+ ifOutMulticastPkts Counter32,
557
+ ifOutBroadcastPkts Counter32,
558
+ ifHCInOctets Counter64,
559
+ ifHCInUcastPkts Counter64,
560
+ ifHCInMulticastPkts Counter64,
561
+ ifHCInBroadcastPkts Counter64,
562
+ ifHCOutOctets Counter64,
563
+ ifHCOutUcastPkts Counter64,
564
+ ifHCOutMulticastPkts Counter64,
565
+ ifHCOutBroadcastPkts Counter64,
566
+ ifLinkUpDownTrapEnable INTEGER,
567
+ ifHighSpeed Gauge32,
568
+ ifPromiscuousMode TruthValue,
569
+ ifConnectorPresent TruthValue,
570
+ ifAlias DisplayString,
571
+ ifCounterDiscontinuityTime TimeStamp
572
+ }
573
+
574
+ ifName OBJECT-TYPE
575
+ SYNTAX DisplayString
576
+ MAX-ACCESS read-only
577
+ STATUS current
578
+ DESCRIPTION
579
+ "The textual name of the interface. The value of this
580
+ object should be the name of the interface as assigned by
581
+ the local device and should be suitable for use in commands
582
+ entered at the device's `console'. This might be a text
583
+ name, such as `le0' or a simple port number, such as `1',
584
+ depending on the interface naming syntax of the device. If
585
+ several entries in the ifTable together represent a single
586
+ interface as named by the device, then each will have the
587
+ same value of ifName. Note that for an agent which responds
588
+ to SNMP queries concerning an interface on some other
589
+ (proxied) device, then the value of ifName for such an
590
+ interface is the proxied device's local name for it.
591
+
592
+ If there is no local name, or this object is otherwise not
593
+ applicable, then this object contains a zero-length string."
594
+ ::= { ifXEntry 1 }
595
+
596
+ ifInMulticastPkts OBJECT-TYPE
597
+ SYNTAX Counter32
598
+ MAX-ACCESS read-only
599
+ STATUS current
600
+ DESCRIPTION
601
+ "The number of packets, delivered by this sub-layer to a
602
+ higher (sub-)layer, which were addressed to a multicast
603
+ address at this sub-layer. For a MAC layer protocol, this
604
+ includes both Group and Functional addresses.
605
+
606
+ Discontinuities in the value of this counter can occur at
607
+ re-initialization of the management system, and at other
608
+
609
+ times as indicated by the value of
610
+ ifCounterDiscontinuityTime."
611
+ ::= { ifXEntry 2 }
612
+
613
+ ifInBroadcastPkts OBJECT-TYPE
614
+ SYNTAX Counter32
615
+ MAX-ACCESS read-only
616
+ STATUS current
617
+ DESCRIPTION
618
+ "The number of packets, delivered by this sub-layer to a
619
+ higher (sub-)layer, which were addressed to a broadcast
620
+ address at this sub-layer.
621
+
622
+ Discontinuities in the value of this counter can occur at
623
+ re-initialization of the management system, and at other
624
+ times as indicated by the value of
625
+ ifCounterDiscontinuityTime."
626
+ ::= { ifXEntry 3 }
627
+
628
+ ifOutMulticastPkts OBJECT-TYPE
629
+ SYNTAX Counter32
630
+ MAX-ACCESS read-only
631
+ STATUS current
632
+ DESCRIPTION
633
+ "The total number of packets that higher-level protocols
634
+ requested be transmitted, and which were addressed to a
635
+ multicast address at this sub-layer, including those that
636
+ were discarded or not sent. For a MAC layer protocol, this
637
+ includes both Group and Functional addresses.
638
+
639
+ Discontinuities in the value of this counter can occur at
640
+ re-initialization of the management system, and at other
641
+ times as indicated by the value of
642
+ ifCounterDiscontinuityTime."
643
+ ::= { ifXEntry 4 }
644
+
645
+ ifOutBroadcastPkts OBJECT-TYPE
646
+ SYNTAX Counter32
647
+ MAX-ACCESS read-only
648
+ STATUS current
649
+ DESCRIPTION
650
+ "The total number of packets that higher-level protocols
651
+ requested be transmitted, and which were addressed to a
652
+ broadcast address at this sub-layer, including those that
653
+ were discarded or not sent.
654
+
655
+ Discontinuities in the value of this counter can occur at
656
+ re-initialization of the management system, and at other
657
+
658
+ times as indicated by the value of
659
+ ifCounterDiscontinuityTime."
660
+ ::= { ifXEntry 5 }
661
+
662
+ --
663
+ -- High Capacity Counter objects. These objects are all
664
+ -- 64 bit versions of the "basic" ifTable counters. These
665
+ -- objects all have the same basic semantics as their 32-bit
666
+ -- counterparts, however, their syntax has been extended
667
+ -- to 64 bits.
668
+ --
669
+
670
+ ifHCInOctets OBJECT-TYPE
671
+ SYNTAX Counter64
672
+ MAX-ACCESS read-only
673
+ STATUS current
674
+ DESCRIPTION
675
+ "The total number of octets received on the interface,
676
+ including framing characters. This object is a 64-bit
677
+ version of ifInOctets.
678
+
679
+ Discontinuities in the value of this counter can occur at
680
+ re-initialization of the management system, and at other
681
+ times as indicated by the value of
682
+ ifCounterDiscontinuityTime."
683
+ ::= { ifXEntry 6 }
684
+
685
+ ifHCInUcastPkts OBJECT-TYPE
686
+ SYNTAX Counter64
687
+ MAX-ACCESS read-only
688
+ STATUS current
689
+ DESCRIPTION
690
+ "The number of packets, delivered by this sub-layer to a
691
+ higher (sub-)layer, which were not addressed to a multicast
692
+ or broadcast address at this sub-layer. This object is a
693
+ 64-bit version of ifInUcastPkts.
694
+
695
+ Discontinuities in the value of this counter can occur at
696
+ re-initialization of the management system, and at other
697
+ times as indicated by the value of
698
+ ifCounterDiscontinuityTime."
699
+ ::= { ifXEntry 7 }
700
+
701
+ ifHCInMulticastPkts OBJECT-TYPE
702
+ SYNTAX Counter64
703
+ MAX-ACCESS read-only
704
+ STATUS current
705
+ DESCRIPTION
706
+ "The number of packets, delivered by this sub-layer to a
707
+ higher (sub-)layer, which were addressed to a multicast
708
+ address at this sub-layer. For a MAC layer protocol, this
709
+ includes both Group and Functional addresses. This object
710
+ is a 64-bit version of ifInMulticastPkts.
711
+
712
+ Discontinuities in the value of this counter can occur at
713
+ re-initialization of the management system, and at other
714
+ times as indicated by the value of
715
+ ifCounterDiscontinuityTime."
716
+ ::= { ifXEntry 8 }
717
+
718
+ ifHCInBroadcastPkts OBJECT-TYPE
719
+ SYNTAX Counter64
720
+ MAX-ACCESS read-only
721
+ STATUS current
722
+ DESCRIPTION
723
+ "The number of packets, delivered by this sub-layer to a
724
+ higher (sub-)layer, which were addressed to a broadcast
725
+ address at this sub-layer. This object is a 64-bit version
726
+ of ifInBroadcastPkts.
727
+
728
+ Discontinuities in the value of this counter can occur at
729
+ re-initialization of the management system, and at other
730
+ times as indicated by the value of
731
+ ifCounterDiscontinuityTime."
732
+ ::= { ifXEntry 9 }
733
+
734
+ ifHCOutOctets OBJECT-TYPE
735
+ SYNTAX Counter64
736
+ MAX-ACCESS read-only
737
+ STATUS current
738
+ DESCRIPTION
739
+ "The total number of octets transmitted out of the
740
+ interface, including framing characters. This object is a
741
+ 64-bit version of ifOutOctets.
742
+
743
+ Discontinuities in the value of this counter can occur at
744
+ re-initialization of the management system, and at other
745
+ times as indicated by the value of
746
+ ifCounterDiscontinuityTime."
747
+ ::= { ifXEntry 10 }
748
+
749
+ ifHCOutUcastPkts OBJECT-TYPE
750
+ SYNTAX Counter64
751
+ MAX-ACCESS read-only
752
+ STATUS current
753
+ DESCRIPTION
754
+ "The total number of packets that higher-level protocols
755
+ requested be transmitted, and which were not addressed to a
756
+ multicast or broadcast address at this sub-layer, including
757
+ those that were discarded or not sent. This object is a
758
+ 64-bit version of ifOutUcastPkts.
759
+
760
+ Discontinuities in the value of this counter can occur at
761
+ re-initialization of the management system, and at other
762
+ times as indicated by the value of
763
+ ifCounterDiscontinuityTime."
764
+ ::= { ifXEntry 11 }
765
+
766
+ ifHCOutMulticastPkts OBJECT-TYPE
767
+ SYNTAX Counter64
768
+ MAX-ACCESS read-only
769
+ STATUS current
770
+ DESCRIPTION
771
+ "The total number of packets that higher-level protocols
772
+ requested be transmitted, and which were addressed to a
773
+ multicast address at this sub-layer, including those that
774
+ were discarded or not sent. For a MAC layer protocol, this
775
+ includes both Group and Functional addresses. This object
776
+ is a 64-bit version of ifOutMulticastPkts.
777
+
778
+ Discontinuities in the value of this counter can occur at
779
+ re-initialization of the management system, and at other
780
+ times as indicated by the value of
781
+ ifCounterDiscontinuityTime."
782
+ ::= { ifXEntry 12 }
783
+
784
+ ifHCOutBroadcastPkts OBJECT-TYPE
785
+ SYNTAX Counter64
786
+ MAX-ACCESS read-only
787
+ STATUS current
788
+ DESCRIPTION
789
+ "The total number of packets that higher-level protocols
790
+ requested be transmitted, and which were addressed to a
791
+ broadcast address at this sub-layer, including those that
792
+ were discarded or not sent. This object is a 64-bit version
793
+ of ifOutBroadcastPkts.
794
+
795
+ Discontinuities in the value of this counter can occur at
796
+ re-initialization of the management system, and at other
797
+ times as indicated by the value of
798
+ ifCounterDiscontinuityTime."
799
+ ::= { ifXEntry 13 }
800
+
801
+ ifLinkUpDownTrapEnable OBJECT-TYPE
802
+ SYNTAX INTEGER { enabled(1), disabled(2) }
803
+ MAX-ACCESS read-write
804
+ STATUS current
805
+ DESCRIPTION
806
+ "Indicates whether linkUp/linkDown traps should be generated
807
+ for this interface.
808
+
809
+ By default, this object should have the value enabled(1) for
810
+ interfaces which do not operate on 'top' of any other
811
+ interface (as defined in the ifStackTable), and disabled(2)
812
+ otherwise."
813
+ ::= { ifXEntry 14 }
814
+
815
+ ifHighSpeed OBJECT-TYPE
816
+ SYNTAX Gauge32
817
+ MAX-ACCESS read-only
818
+ STATUS current
819
+ DESCRIPTION
820
+ "An estimate of the interface's current bandwidth in units
821
+ of 1,000,000 bits per second. If this object reports a
822
+ value of `n' then the speed of the interface is somewhere in
823
+ the range of `n-500,000' to `n+499,999'. For interfaces
824
+ which do not vary in bandwidth or for those where no
825
+ accurate estimation can be made, this object should contain
826
+ the nominal bandwidth. For a sub-layer which has no concept
827
+ of bandwidth, this object should be zero."
828
+ ::= { ifXEntry 15 }
829
+
830
+ ifPromiscuousMode OBJECT-TYPE
831
+ SYNTAX TruthValue
832
+ MAX-ACCESS read-write
833
+ STATUS current
834
+ DESCRIPTION
835
+ "This object has a value of false(2) if this interface only
836
+ accepts packets/frames that are addressed to this station.
837
+ This object has a value of true(1) when the station accepts
838
+ all packets/frames transmitted on the media. The value
839
+ true(1) is only legal on certain types of media. If legal,
840
+ setting this object to a value of true(1) may require the
841
+ interface to be reset before becoming effective.
842
+
843
+ The value of ifPromiscuousMode does not affect the reception
844
+ of broadcast and multicast packets/frames by the interface."
845
+ ::= { ifXEntry 16 }
846
+
847
+ ifConnectorPresent OBJECT-TYPE
848
+ SYNTAX TruthValue
849
+ MAX-ACCESS read-only
850
+ STATUS current
851
+ DESCRIPTION
852
+ "This object has the value 'true(1)' if the interface
853
+ sublayer has a physical connector and the value 'false(2)'
854
+ otherwise."
855
+ ::= { ifXEntry 17 }
856
+
857
+ ifAlias OBJECT-TYPE
858
+ SYNTAX DisplayString (SIZE(0..64))
859
+ MAX-ACCESS read-write
860
+ STATUS current
861
+ DESCRIPTION
862
+ "This object is an 'alias' name for the interface as
863
+ specified by a network manager, and provides a non-volatile
864
+ 'handle' for the interface.
865
+
866
+ On the first instantiation of an interface, the value of
867
+ ifAlias associated with that interface is the zero-length
868
+ string. As and when a value is written into an instance of
869
+ ifAlias through a network management set operation, then the
870
+ agent must retain the supplied value in the ifAlias instance
871
+ associated with the same interface for as long as that
872
+ interface remains instantiated, including across all re-
873
+ initializations/reboots of the network management system,
874
+ including those which result in a change of the interface's
875
+ ifIndex value.
876
+
877
+ An example of the value which a network manager might store
878
+ in this object for a WAN interface is the (Telco's) circuit
879
+ number/identifier of the interface.
880
+
881
+ Some agents may support write-access only for interfaces
882
+ having particular values of ifType. An agent which supports
883
+ write access to this object is required to keep the value in
884
+ non-volatile storage, but it may limit the length of new
885
+ values depending on how much storage is already occupied by
886
+ the current values for other interfaces."
887
+ ::= { ifXEntry 18 }
888
+
889
+ ifCounterDiscontinuityTime OBJECT-TYPE
890
+ SYNTAX TimeStamp
891
+ MAX-ACCESS read-only
892
+ STATUS current
893
+ DESCRIPTION
894
+ "The value of sysUpTime on the most recent occasion at which
895
+ any one or more of this interface's counters suffered a
896
+ discontinuity. The relevant counters are the specific
897
+ instances associated with this interface of any Counter32 or
898
+
899
+ Counter64 object contained in the ifTable or ifXTable. If
900
+ no such discontinuities have occurred since the last re-
901
+ initialization of the local management subsystem, then this
902
+ object contains a zero value."
903
+ ::= { ifXEntry 19 }
904
+
905
+ -- The Interface Stack Group
906
+ --
907
+ -- Implementation of this group is optional, but strongly recommended
908
+ -- for all systems
909
+ --
910
+
911
+ ifStackTable OBJECT-TYPE
912
+ SYNTAX SEQUENCE OF IfStackEntry
913
+ MAX-ACCESS not-accessible
914
+ STATUS current
915
+ DESCRIPTION
916
+ "The table containing information on the relationships
917
+ between the multiple sub-layers of network interfaces. In
918
+ particular, it contains information on which sub-layers run
919
+ 'on top of' which other sub-layers, where each sub-layer
920
+ corresponds to a conceptual row in the ifTable. For
921
+ example, when the sub-layer with ifIndex value x runs over
922
+ the sub-layer with ifIndex value y, then this table
923
+ contains:
924
+
925
+ ifStackStatus.x.y=active
926
+
927
+ For each ifIndex value, I, which identifies an active
928
+ interface, there are always at least two instantiated rows
929
+ in this table associated with I. For one of these rows, I
930
+ is the value of ifStackHigherLayer; for the other, I is the
931
+ value of ifStackLowerLayer. (If I is not involved in
932
+ multiplexing, then these are the only two rows associated
933
+ with I.)
934
+
935
+ For example, two rows exist even for an interface which has
936
+ no others stacked on top or below it:
937
+
938
+ ifStackStatus.0.x=active
939
+ ifStackStatus.x.0=active "
940
+ ::= { ifMIBObjects 2 }
941
+
942
+ ifStackEntry OBJECT-TYPE
943
+ SYNTAX IfStackEntry
944
+ MAX-ACCESS not-accessible
945
+ STATUS current
946
+ DESCRIPTION
947
+ "Information on a particular relationship between two sub-
948
+ layers, specifying that one sub-layer runs on 'top' of the
949
+ other sub-layer. Each sub-layer corresponds to a conceptual
950
+ row in the ifTable."
951
+ INDEX { ifStackHigherLayer, ifStackLowerLayer }
952
+ ::= { ifStackTable 1 }
953
+
954
+ IfStackEntry ::=
955
+ SEQUENCE {
956
+ ifStackHigherLayer InterfaceIndexOrZero,
957
+ ifStackLowerLayer InterfaceIndexOrZero,
958
+ ifStackStatus RowStatus
959
+ }
960
+
961
+ ifStackHigherLayer OBJECT-TYPE
962
+ SYNTAX InterfaceIndexOrZero
963
+ MAX-ACCESS not-accessible
964
+ STATUS current
965
+ DESCRIPTION
966
+ "The value of ifIndex corresponding to the higher sub-layer
967
+ of the relationship, i.e., the sub-layer which runs on 'top'
968
+ of the sub-layer identified by the corresponding instance of
969
+ ifStackLowerLayer. If there is no higher sub-layer (below
970
+ the internetwork layer), then this object has the value 0."
971
+ ::= { ifStackEntry 1 }
972
+
973
+ ifStackLowerLayer OBJECT-TYPE
974
+ SYNTAX InterfaceIndexOrZero
975
+ MAX-ACCESS not-accessible
976
+ STATUS current
977
+ DESCRIPTION
978
+ "The value of ifIndex corresponding to the lower sub-layer
979
+ of the relationship, i.e., the sub-layer which runs 'below'
980
+ the sub-layer identified by the corresponding instance of
981
+ ifStackHigherLayer. If there is no lower sub-layer, then
982
+ this object has the value 0."
983
+ ::= { ifStackEntry 2 }
984
+
985
+ ifStackStatus OBJECT-TYPE
986
+ SYNTAX RowStatus
987
+ MAX-ACCESS read-create
988
+ STATUS current
989
+ DESCRIPTION
990
+ "The status of the relationship between two sub-layers.
991
+
992
+ Changing the value of this object from 'active' to
993
+ 'notInService' or 'destroy' will likely have consequences up
994
+ and down the interface stack. Thus, write access to this
995
+ object is likely to be inappropriate for some types of
996
+ interfaces, and many implementations will choose not to
997
+ support write-access for any type of interface."
998
+ ::= { ifStackEntry 3 }
999
+
1000
+ ifStackLastChange OBJECT-TYPE
1001
+ SYNTAX TimeTicks
1002
+ MAX-ACCESS read-only
1003
+ STATUS current
1004
+ DESCRIPTION
1005
+ "The value of sysUpTime at the time of the last change of
1006
+ the (whole) interface stack. A change of the interface
1007
+ stack is defined to be any creation, deletion, or change in
1008
+ value of any instance of ifStackStatus. If the interface
1009
+ stack has been unchanged since the last re-initialization of
1010
+ the local network management subsystem, then this object
1011
+ contains a zero value."
1012
+ ::= { ifMIBObjects 6 }
1013
+
1014
+ -- Generic Receive Address Table
1015
+ --
1016
+ -- This group of objects is mandatory for all types of
1017
+ -- interfaces which can receive packets/frames addressed to
1018
+ -- more than one address.
1019
+ --
1020
+ -- This table replaces the ifExtnsRcvAddr table. The main
1021
+ -- difference is that this table makes use of the RowStatus
1022
+ -- textual convention, while ifExtnsRcvAddr did not.
1023
+
1024
+ ifRcvAddressTable OBJECT-TYPE
1025
+ SYNTAX SEQUENCE OF IfRcvAddressEntry
1026
+ MAX-ACCESS not-accessible
1027
+ STATUS current
1028
+ DESCRIPTION
1029
+ "This table contains an entry for each address (broadcast,
1030
+ multicast, or uni-cast) for which the system will receive
1031
+ packets/frames on a particular interface, except as follows:
1032
+
1033
+ - for an interface operating in promiscuous mode, entries
1034
+ are only required for those addresses for which the system
1035
+ would receive frames were it not operating in promiscuous
1036
+ mode.
1037
+
1038
+ - for 802.5 functional addresses, only one entry is
1039
+ required, for the address which has the functional address
1040
+ bit ANDed with the bit mask of all functional addresses for
1041
+ which the interface will accept frames.
1042
+
1043
+ A system is normally able to use any unicast address which
1044
+ corresponds to an entry in this table as a source address."
1045
+ ::= { ifMIBObjects 4 }
1046
+
1047
+ ifRcvAddressEntry OBJECT-TYPE
1048
+ SYNTAX IfRcvAddressEntry
1049
+ MAX-ACCESS not-accessible
1050
+ STATUS current
1051
+ DESCRIPTION
1052
+ "A list of objects identifying an address for which the
1053
+ system will accept packets/frames on the particular
1054
+ interface identified by the index value ifIndex."
1055
+ INDEX { ifIndex, ifRcvAddressAddress }
1056
+ ::= { ifRcvAddressTable 1 }
1057
+
1058
+ IfRcvAddressEntry ::=
1059
+ SEQUENCE {
1060
+ ifRcvAddressAddress PhysAddress,
1061
+ ifRcvAddressStatus RowStatus,
1062
+ ifRcvAddressType INTEGER
1063
+ }
1064
+
1065
+ ifRcvAddressAddress OBJECT-TYPE
1066
+ SYNTAX PhysAddress
1067
+ MAX-ACCESS not-accessible
1068
+ STATUS current
1069
+ DESCRIPTION
1070
+ "An address for which the system will accept packets/frames
1071
+ on this entry's interface."
1072
+ ::= { ifRcvAddressEntry 1 }
1073
+
1074
+ ifRcvAddressStatus OBJECT-TYPE
1075
+ SYNTAX RowStatus
1076
+ MAX-ACCESS read-create
1077
+ STATUS current
1078
+ DESCRIPTION
1079
+ "This object is used to create and delete rows in the
1080
+ ifRcvAddressTable."
1081
+ ::= { ifRcvAddressEntry 2 }
1082
+
1083
+ ifRcvAddressType OBJECT-TYPE
1084
+ SYNTAX INTEGER {
1085
+
1086
+ other(1),
1087
+ volatile(2),
1088
+ nonVolatile(3)
1089
+ }
1090
+ MAX-ACCESS read-create
1091
+ STATUS current
1092
+ DESCRIPTION
1093
+ "This object has the value nonVolatile(3) for those entries
1094
+ in the table which are valid and will not be deleted by the
1095
+ next restart of the managed system. Entries having the
1096
+ value volatile(2) are valid and exist, but have not been
1097
+ saved, so that will not exist after the next restart of the
1098
+ managed system. Entries having the value other(1) are valid
1099
+ and exist but are not classified as to whether they will
1100
+ continue to exist after the next restart."
1101
+ DEFVAL { volatile }
1102
+ ::= { ifRcvAddressEntry 3 }
1103
+
1104
+ -- definition of interface-related traps.
1105
+
1106
+ linkDown NOTIFICATION-TYPE
1107
+ OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
1108
+ STATUS current
1109
+ DESCRIPTION
1110
+ "A linkDown trap signifies that the SNMP entity, acting in
1111
+ an agent role, has detected that the ifOperStatus object for
1112
+ one of its communication links is about to enter the down
1113
+ state from some other state (but not from the notPresent
1114
+ state). This other state is indicated by the included value
1115
+ of ifOperStatus."
1116
+ ::= { snmpTraps 3 }
1117
+
1118
+ linkUp NOTIFICATION-TYPE
1119
+ OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
1120
+ STATUS current
1121
+ DESCRIPTION
1122
+ "A linkUp trap signifies that the SNMP entity, acting in an
1123
+ agent role, has detected that the ifOperStatus object for
1124
+ one of its communication links left the down state and
1125
+ transitioned into some other state (but not into the
1126
+ notPresent state). This other state is indicated by the
1127
+ included value of ifOperStatus."
1128
+ ::= { snmpTraps 4 }
1129
+
1130
+ -- conformance information
1131
+
1132
+ ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }
1133
+
1134
+ ifGroups OBJECT IDENTIFIER ::= { ifConformance 1 }
1135
+ ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }
1136
+
1137
+ -- compliance statements
1138
+
1139
+ ifCompliance3 MODULE-COMPLIANCE
1140
+ STATUS current
1141
+ DESCRIPTION
1142
+ "The compliance statement for SNMP entities which have
1143
+ network interfaces."
1144
+
1145
+ MODULE -- this module
1146
+ MANDATORY-GROUPS { ifGeneralInformationGroup,
1147
+ linkUpDownNotificationsGroup }
1148
+
1149
+ -- The groups:
1150
+ -- ifFixedLengthGroup
1151
+ -- ifHCFixedLengthGroup
1152
+ -- ifPacketGroup
1153
+ -- ifHCPacketGroup
1154
+ -- ifVHCPacketGroup
1155
+ -- are mutually exclusive; at most one of these groups is implemented
1156
+ -- for a particular interface. When any of these groups is implemented
1157
+ -- for a particular interface, then ifCounterDiscontinuityGroup must
1158
+ -- also be implemented for that interface.
1159
+
1160
+ GROUP ifFixedLengthGroup
1161
+ DESCRIPTION
1162
+ "This group is mandatory for those network interfaces which
1163
+ are character-oriented or transmit data in fixed-length
1164
+ transmission units, and for which the value of the
1165
+ corresponding instance of ifSpeed is less than or equal to
1166
+ 20,000,000 bits/second."
1167
+
1168
+ GROUP ifHCFixedLengthGroup
1169
+ DESCRIPTION
1170
+ "This group is mandatory for those network interfaces which
1171
+ are character-oriented or transmit data in fixed-length
1172
+ transmission units, and for which the value of the
1173
+ corresponding instance of ifSpeed is greater than 20,000,000
1174
+ bits/second."
1175
+
1176
+ GROUP ifPacketGroup
1177
+ DESCRIPTION
1178
+ "This group is mandatory for those network interfaces which
1179
+ are packet-oriented, and for which the value of the
1180
+ corresponding instance of ifSpeed is less than or equal to
1181
+ 20,000,000 bits/second."
1182
+
1183
+ GROUP ifHCPacketGroup
1184
+ DESCRIPTION
1185
+ "This group is mandatory only for those network interfaces
1186
+ which are packet-oriented and for which the value of the
1187
+ corresponding instance of ifSpeed is greater than 20,000,000
1188
+ bits/second but less than or equal to 650,000,000
1189
+ bits/second."
1190
+
1191
+ GROUP ifVHCPacketGroup
1192
+ DESCRIPTION
1193
+ "This group is mandatory only for those network interfaces
1194
+ which are packet-oriented and for which the value of the
1195
+ corresponding instance of ifSpeed is greater than
1196
+ 650,000,000 bits/second."
1197
+
1198
+ GROUP ifCounterDiscontinuityGroup
1199
+ DESCRIPTION
1200
+ "This group is mandatory for those network interfaces that
1201
+ are required to maintain counters (i.e., those for which one
1202
+ of the ifFixedLengthGroup, ifHCFixedLengthGroup,
1203
+ ifPacketGroup, ifHCPacketGroup, or ifVHCPacketGroup is
1204
+ mandatory)."
1205
+
1206
+ GROUP ifRcvAddressGroup
1207
+ DESCRIPTION
1208
+ "The applicability of this group MUST be defined by the
1209
+ media-specific MIBs. Media-specific MIBs must define the
1210
+ exact meaning, use, and semantics of the addresses in this
1211
+ group."
1212
+
1213
+ OBJECT ifLinkUpDownTrapEnable
1214
+ MIN-ACCESS read-only
1215
+ DESCRIPTION
1216
+ "Write access is not required."
1217
+
1218
+ OBJECT ifPromiscuousMode
1219
+ MIN-ACCESS read-only
1220
+ DESCRIPTION
1221
+ "Write access is not required."
1222
+
1223
+ OBJECT ifAdminStatus
1224
+ SYNTAX INTEGER { up(1), down(2) }
1225
+ MIN-ACCESS read-only
1226
+ DESCRIPTION
1227
+ "Write access is not required, nor is support for the value
1228
+ testing(3)."
1229
+
1230
+ OBJECT ifAlias
1231
+ MIN-ACCESS read-only
1232
+ DESCRIPTION
1233
+ "Write access is not required."
1234
+ ::= { ifCompliances 3 }
1235
+
1236
+ -- units of conformance
1237
+
1238
+ ifGeneralInformationGroup OBJECT-GROUP
1239
+ OBJECTS { ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress,
1240
+ ifAdminStatus, ifOperStatus, ifLastChange,
1241
+ ifLinkUpDownTrapEnable, ifConnectorPresent,
1242
+ ifHighSpeed, ifName, ifNumber, ifAlias,
1243
+ ifTableLastChange }
1244
+ STATUS current
1245
+ DESCRIPTION
1246
+ "A collection of objects providing information applicable to
1247
+ all network interfaces."
1248
+ ::= { ifGroups 10 }
1249
+
1250
+ -- the following five groups are mutually exclusive; at most
1251
+ -- one of these groups is implemented for any interface
1252
+
1253
+ ifFixedLengthGroup OBJECT-GROUP
1254
+ OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
1255
+ ifInErrors, ifOutErrors }
1256
+ STATUS current
1257
+ DESCRIPTION
1258
+ "A collection of objects providing information specific to
1259
+ non-high speed (non-high speed interfaces transmit and
1260
+ receive at speeds less than or equal to 20,000,000
1261
+ bits/second) character-oriented or fixed-length-transmission
1262
+ network interfaces."
1263
+ ::= { ifGroups 2 }
1264
+
1265
+ ifHCFixedLengthGroup OBJECT-GROUP
1266
+ OBJECTS { ifHCInOctets, ifHCOutOctets,
1267
+ ifInOctets, ifOutOctets, ifInUnknownProtos,
1268
+ ifInErrors, ifOutErrors }
1269
+ STATUS current
1270
+ DESCRIPTION
1271
+ "A collection of objects providing information specific to
1272
+ high speed (greater than 20,000,000 bits/second) character-
1273
+ oriented or fixed-length-transmission network interfaces."
1274
+ ::= { ifGroups 3 }
1275
+
1276
+ ifPacketGroup OBJECT-GROUP
1277
+ OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
1278
+ ifInErrors, ifOutErrors,
1279
+ ifMtu, ifInUcastPkts, ifInMulticastPkts,
1280
+ ifInBroadcastPkts, ifInDiscards,
1281
+ ifOutUcastPkts, ifOutMulticastPkts,
1282
+ ifOutBroadcastPkts, ifOutDiscards,
1283
+ ifPromiscuousMode }
1284
+ STATUS current
1285
+ DESCRIPTION
1286
+ "A collection of objects providing information specific to
1287
+ non-high speed (non-high speed interfaces transmit and
1288
+ receive at speeds less than or equal to 20,000,000
1289
+ bits/second) packet-oriented network interfaces."
1290
+ ::= { ifGroups 4 }
1291
+
1292
+ ifHCPacketGroup OBJECT-GROUP
1293
+ OBJECTS { ifHCInOctets, ifHCOutOctets,
1294
+ ifInOctets, ifOutOctets, ifInUnknownProtos,
1295
+ ifInErrors, ifOutErrors,
1296
+ ifMtu, ifInUcastPkts, ifInMulticastPkts,
1297
+ ifInBroadcastPkts, ifInDiscards,
1298
+ ifOutUcastPkts, ifOutMulticastPkts,
1299
+ ifOutBroadcastPkts, ifOutDiscards,
1300
+ ifPromiscuousMode }
1301
+ STATUS current
1302
+ DESCRIPTION
1303
+ "A collection of objects providing information specific to
1304
+ high speed (greater than 20,000,000 bits/second but less
1305
+ than or equal to 650,000,000 bits/second) packet-oriented
1306
+ network interfaces."
1307
+ ::= { ifGroups 5 }
1308
+
1309
+ ifVHCPacketGroup OBJECT-GROUP
1310
+ OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts,
1311
+ ifHCInBroadcastPkts, ifHCOutUcastPkts,
1312
+ ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
1313
+ ifHCInOctets, ifHCOutOctets,
1314
+ ifInOctets, ifOutOctets, ifInUnknownProtos,
1315
+ ifInErrors, ifOutErrors,
1316
+ ifMtu, ifInUcastPkts, ifInMulticastPkts,
1317
+ ifInBroadcastPkts, ifInDiscards,
1318
+ ifOutUcastPkts, ifOutMulticastPkts,
1319
+ ifOutBroadcastPkts, ifOutDiscards,
1320
+ ifPromiscuousMode }
1321
+ STATUS current
1322
+ DESCRIPTION
1323
+ "A collection of objects providing information specific to
1324
+ higher speed (greater than 650,000,000 bits/second) packet-
1325
+ oriented network interfaces."
1326
+ ::= { ifGroups 6 }
1327
+
1328
+ ifRcvAddressGroup OBJECT-GROUP
1329
+ OBJECTS { ifRcvAddressStatus, ifRcvAddressType }
1330
+ STATUS current
1331
+ DESCRIPTION
1332
+ "A collection of objects providing information on the
1333
+ multiple addresses which an interface receives."
1334
+ ::= { ifGroups 7 }
1335
+
1336
+ ifStackGroup2 OBJECT-GROUP
1337
+ OBJECTS { ifStackStatus, ifStackLastChange }
1338
+ STATUS current
1339
+ DESCRIPTION
1340
+ "A collection of objects providing information on the
1341
+ layering of MIB-II interfaces."
1342
+ ::= { ifGroups 11 }
1343
+
1344
+ ifCounterDiscontinuityGroup OBJECT-GROUP
1345
+ OBJECTS { ifCounterDiscontinuityTime }
1346
+ STATUS current
1347
+ DESCRIPTION
1348
+ "A collection of objects providing information specific to
1349
+ interface counter discontinuities."
1350
+ ::= { ifGroups 13 }
1351
+
1352
+ linkUpDownNotificationsGroup NOTIFICATION-GROUP
1353
+ NOTIFICATIONS { linkUp, linkDown }
1354
+ STATUS current
1355
+ DESCRIPTION
1356
+ "The notifications which indicate specific changes in the
1357
+ value of ifOperStatus."
1358
+ ::= { ifGroups 14 }
1359
+
1360
+ -- Deprecated Definitions - Objects
1361
+
1362
+ --
1363
+ -- The Interface Test Table
1364
+ --
1365
+ -- This group of objects is optional. However, a media-specific
1366
+
1367
+ -- MIB may make implementation of this group mandatory.
1368
+ --
1369
+ -- This table replaces the ifExtnsTestTable
1370
+ --
1371
+
1372
+ ifTestTable OBJECT-TYPE
1373
+ SYNTAX SEQUENCE OF IfTestEntry
1374
+ MAX-ACCESS not-accessible
1375
+ STATUS deprecated
1376
+ DESCRIPTION
1377
+ "This table contains one entry per interface. It defines
1378
+ objects which allow a network manager to instruct an agent
1379
+ to test an interface for various faults. Tests for an
1380
+ interface are defined in the media-specific MIB for that
1381
+ interface. After invoking a test, the object ifTestResult
1382
+ can be read to determine the outcome. If an agent can not
1383
+ perform the test, ifTestResult is set to so indicate. The
1384
+ object ifTestCode can be used to provide further test-
1385
+ specific or interface-specific (or even enterprise-specific)
1386
+ information concerning the outcome of the test. Only one
1387
+ test can be in progress on each interface at any one time.
1388
+ If one test is in progress when another test is invoked, the
1389
+ second test is rejected. Some agents may reject a test when
1390
+ a prior test is active on another interface.
1391
+
1392
+ Before starting a test, a manager-station must first obtain
1393
+ 'ownership' of the entry in the ifTestTable for the
1394
+ interface to be tested. This is accomplished with the
1395
+ ifTestId and ifTestStatus objects as follows:
1396
+
1397
+ try_again:
1398
+ get (ifTestId, ifTestStatus)
1399
+ while (ifTestStatus != notInUse)
1400
+ /*
1401
+ * Loop while a test is running or some other
1402
+ * manager is configuring a test.
1403
+ */
1404
+ short delay
1405
+ get (ifTestId, ifTestStatus)
1406
+ }
1407
+
1408
+ /*
1409
+ * Is not being used right now -- let's compete
1410
+ * to see who gets it.
1411
+ */
1412
+ lock_value = ifTestId
1413
+
1414
+ if ( set(ifTestId = lock_value, ifTestStatus = inUse,
1415
+ ifTestOwner = 'my-IP-address') == FAILURE)
1416
+ /*
1417
+ * Another manager got the ifTestEntry -- go
1418
+ * try again
1419
+ */
1420
+ goto try_again;
1421
+
1422
+ /*
1423
+ * I have the lock
1424
+ */
1425
+ set up any test parameters.
1426
+
1427
+ /*
1428
+ * This starts the test
1429
+ */
1430
+ set(ifTestType = test_to_run);
1431
+
1432
+ wait for test completion by polling ifTestResult
1433
+
1434
+ when test completes, agent sets ifTestResult
1435
+ agent also sets ifTestStatus = 'notInUse'
1436
+
1437
+ retrieve any additional test results, and ifTestId
1438
+
1439
+ if (ifTestId == lock_value+1) results are valid
1440
+
1441
+ A manager station first retrieves the value of the
1442
+ appropriate ifTestId and ifTestStatus objects, periodically
1443
+ repeating the retrieval if necessary, until the value of
1444
+ ifTestStatus is 'notInUse'. The manager station then tries
1445
+ to set the same ifTestId object to the value it just
1446
+ retrieved, the same ifTestStatus object to 'inUse', and the
1447
+ corresponding ifTestOwner object to a value indicating
1448
+ itself. If the set operation succeeds then the manager has
1449
+ obtained ownership of the ifTestEntry, and the value of the
1450
+ ifTestId object is incremented by the agent (per the
1451
+ semantics of TestAndIncr). Failure of the set operation
1452
+ indicates that some other manager has obtained ownership of
1453
+ the ifTestEntry.
1454
+
1455
+ Once ownership is obtained, any test parameters can be
1456
+ setup, and then the test is initiated by setting ifTestType.
1457
+ On completion of the test, the agent sets ifTestStatus to
1458
+ 'notInUse'. Once this occurs, the manager can retrieve the
1459
+ results. In the (rare) event that the invocation of tests
1460
+ by two network managers were to overlap, then there would be
1461
+ a possibility that the first test's results might be
1462
+ overwritten by the second test's results prior to the first
1463
+
1464
+ results being read. This unlikely circumstance can be
1465
+ detected by a network manager retrieving ifTestId at the
1466
+ same time as retrieving the test results, and ensuring that
1467
+ the results are for the desired request.
1468
+
1469
+ If ifTestType is not set within an abnormally long period of
1470
+ time after ownership is obtained, the agent should time-out
1471
+ the manager, and reset the value of the ifTestStatus object
1472
+ back to 'notInUse'. It is suggested that this time-out
1473
+ period be 5 minutes.
1474
+
1475
+ In general, a management station must not retransmit a
1476
+ request to invoke a test for which it does not receive a
1477
+ response; instead, it properly inspects an agent's MIB to
1478
+ determine if the invocation was successful. Only if the
1479
+ invocation was unsuccessful, is the invocation request
1480
+ retransmitted.
1481
+
1482
+ Some tests may require the interface to be taken off-line in
1483
+ order to execute them, or may even require the agent to
1484
+ reboot after completion of the test. In these
1485
+ circumstances, communication with the management station
1486
+ invoking the test may be lost until after completion of the
1487
+ test. An agent is not required to support such tests.
1488
+ However, if such tests are supported, then the agent should
1489
+ make every effort to transmit a response to the request
1490
+ which invoked the test prior to losing communication. When
1491
+ the agent is restored to normal service, the results of the
1492
+ test are properly made available in the appropriate objects.
1493
+ Note that this requires that the ifIndex value assigned to
1494
+ an interface must be unchanged even if the test causes a
1495
+ reboot. An agent must reject any test for which it cannot,
1496
+ perhaps due to resource constraints, make available at least
1497
+ the minimum amount of information after that test
1498
+ completes."
1499
+ ::= { ifMIBObjects 3 }
1500
+
1501
+ ifTestEntry OBJECT-TYPE
1502
+ SYNTAX IfTestEntry
1503
+ MAX-ACCESS not-accessible
1504
+ STATUS deprecated
1505
+ DESCRIPTION
1506
+ "An entry containing objects for invoking tests on an
1507
+ interface."
1508
+ AUGMENTS { ifEntry }
1509
+ ::= { ifTestTable 1 }
1510
+
1511
+ IfTestEntry ::=
1512
+
1513
+ SEQUENCE {
1514
+ ifTestId TestAndIncr,
1515
+ ifTestStatus INTEGER,
1516
+ ifTestType AutonomousType,
1517
+ ifTestResult INTEGER,
1518
+ ifTestCode OBJECT IDENTIFIER,
1519
+ ifTestOwner OwnerString
1520
+ }
1521
+
1522
+ ifTestId OBJECT-TYPE
1523
+ SYNTAX TestAndIncr
1524
+ MAX-ACCESS read-write
1525
+ STATUS deprecated
1526
+ DESCRIPTION
1527
+ "This object identifies the current invocation of the
1528
+ interface's test."
1529
+ ::= { ifTestEntry 1 }
1530
+
1531
+ ifTestStatus OBJECT-TYPE
1532
+ SYNTAX INTEGER { notInUse(1), inUse(2) }
1533
+ MAX-ACCESS read-write
1534
+ STATUS deprecated
1535
+ DESCRIPTION
1536
+ "This object indicates whether or not some manager currently
1537
+ has the necessary 'ownership' required to invoke a test on
1538
+ this interface. A write to this object is only successful
1539
+ when it changes its value from 'notInUse(1)' to 'inUse(2)'.
1540
+ After completion of a test, the agent resets the value back
1541
+ to 'notInUse(1)'."
1542
+ ::= { ifTestEntry 2 }
1543
+
1544
+ ifTestType OBJECT-TYPE
1545
+ SYNTAX AutonomousType
1546
+ MAX-ACCESS read-write
1547
+ STATUS deprecated
1548
+ DESCRIPTION
1549
+ "A control variable used to start and stop operator-
1550
+ initiated interface tests. Most OBJECT IDENTIFIER values
1551
+ assigned to tests are defined elsewhere, in association with
1552
+ specific types of interface. However, this document assigns
1553
+ a value for a full-duplex loopback test, and defines the
1554
+ special meanings of the subject identifier:
1555
+
1556
+ noTest OBJECT IDENTIFIER ::= { 0 0 }
1557
+
1558
+ When the value noTest is written to this object, no action
1559
+ is taken unless a test is in progress, in which case the
1560
+ test is aborted. Writing any other value to this object is
1561
+
1562
+ only valid when no test is currently in progress, in which
1563
+ case the indicated test is initiated.
1564
+
1565
+ When read, this object always returns the most recent value
1566
+ that ifTestType was set to. If it has not been set since
1567
+ the last initialization of the network management subsystem
1568
+ on the agent, a value of noTest is returned."
1569
+ ::= { ifTestEntry 3 }
1570
+
1571
+ ifTestResult OBJECT-TYPE
1572
+ SYNTAX INTEGER {
1573
+ none(1), -- no test yet requested
1574
+ success(2),
1575
+ inProgress(3),
1576
+ notSupported(4),
1577
+ unAbleToRun(5), -- due to state of system
1578
+ aborted(6),
1579
+ failed(7)
1580
+ }
1581
+ MAX-ACCESS read-only
1582
+ STATUS deprecated
1583
+ DESCRIPTION
1584
+ "This object contains the result of the most recently
1585
+ requested test, or the value none(1) if no tests have been
1586
+ requested since the last reset. Note that this facility
1587
+ provides no provision for saving the results of one test
1588
+ when starting another, as could be required if used by
1589
+ multiple managers concurrently."
1590
+ ::= { ifTestEntry 4 }
1591
+
1592
+ ifTestCode OBJECT-TYPE
1593
+ SYNTAX OBJECT IDENTIFIER
1594
+ MAX-ACCESS read-only
1595
+ STATUS deprecated
1596
+ DESCRIPTION
1597
+ "This object contains a code which contains more specific
1598
+ information on the test result, for example an error-code
1599
+ after a failed test. Error codes and other values this
1600
+ object may take are specific to the type of interface and/or
1601
+ test. The value may have the semantics of either the
1602
+ AutonomousType or InstancePointer textual conventions as
1603
+ defined in RFC 2579. The identifier:
1604
+
1605
+ testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 }
1606
+
1607
+ is defined for use if no additional result code is
1608
+ available."
1609
+ ::= { ifTestEntry 5 }
1610
+
1611
+ ifTestOwner OBJECT-TYPE
1612
+ SYNTAX OwnerString
1613
+ MAX-ACCESS read-write
1614
+ STATUS deprecated
1615
+ DESCRIPTION
1616
+ "The entity which currently has the 'ownership' required to
1617
+ invoke a test on this interface."
1618
+ ::= { ifTestEntry 6 }
1619
+
1620
+ -- Deprecated Definitions - Groups
1621
+
1622
+ ifGeneralGroup OBJECT-GROUP
1623
+ OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress,
1624
+ ifAdminStatus, ifOperStatus, ifLastChange,
1625
+ ifLinkUpDownTrapEnable, ifConnectorPresent,
1626
+ ifHighSpeed, ifName }
1627
+ STATUS deprecated
1628
+ DESCRIPTION
1629
+ "A collection of objects deprecated in favour of
1630
+ ifGeneralInformationGroup."
1631
+ ::= { ifGroups 1 }
1632
+
1633
+ ifTestGroup OBJECT-GROUP
1634
+ OBJECTS { ifTestId, ifTestStatus, ifTestType,
1635
+ ifTestResult, ifTestCode, ifTestOwner }
1636
+ STATUS deprecated
1637
+ DESCRIPTION
1638
+ "A collection of objects providing the ability to invoke
1639
+ tests on an interface."
1640
+ ::= { ifGroups 8 }
1641
+
1642
+ ifStackGroup OBJECT-GROUP
1643
+ OBJECTS { ifStackStatus }
1644
+ STATUS deprecated
1645
+ DESCRIPTION
1646
+ "The previous collection of objects providing information on
1647
+ the layering of MIB-II interfaces."
1648
+ ::= { ifGroups 9 }
1649
+
1650
+ ifOldObjectsGroup OBJECT-GROUP
1651
+ OBJECTS { ifInNUcastPkts, ifOutNUcastPkts,
1652
+ ifOutQLen, ifSpecific }
1653
+ STATUS deprecated
1654
+ DESCRIPTION
1655
+ "The collection of objects deprecated from the original MIB-
1656
+ II interfaces group."
1657
+ ::= { ifGroups 12 }
1658
+
1659
+ -- Deprecated Definitions - Compliance
1660
+
1661
+ ifCompliance MODULE-COMPLIANCE
1662
+ STATUS deprecated
1663
+ DESCRIPTION
1664
+ "A compliance statement defined in a previous version of
1665
+ this MIB module, for SNMP entities which have network
1666
+ interfaces."
1667
+
1668
+ MODULE -- this module
1669
+ MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup }
1670
+
1671
+ GROUP ifFixedLengthGroup
1672
+ DESCRIPTION
1673
+ "This group is mandatory for all network interfaces which
1674
+ are character-oriented or transmit data in fixed-length
1675
+ transmission units."
1676
+
1677
+ GROUP ifHCFixedLengthGroup
1678
+ DESCRIPTION
1679
+ "This group is mandatory only for those network interfaces
1680
+ which are character-oriented or transmit data in fixed-
1681
+ length transmission units, and for which the value of the
1682
+ corresponding instance of ifSpeed is greater than 20,000,000
1683
+ bits/second."
1684
+
1685
+ GROUP ifPacketGroup
1686
+ DESCRIPTION
1687
+ "This group is mandatory for all network interfaces which
1688
+ are packet-oriented."
1689
+
1690
+ GROUP ifHCPacketGroup
1691
+ DESCRIPTION
1692
+ "This group is mandatory only for those network interfaces
1693
+ which are packet-oriented and for which the value of the
1694
+ corresponding instance of ifSpeed is greater than
1695
+ 650,000,000 bits/second."
1696
+
1697
+ GROUP ifTestGroup
1698
+ DESCRIPTION
1699
+ "This group is optional. Media-specific MIBs which require
1700
+ interface tests are strongly encouraged to use this group
1701
+ for invoking tests and reporting results. A medium specific
1702
+ MIB which has mandatory tests may make implementation of
1703
+
1704
+ this group mandatory."
1705
+
1706
+ GROUP ifRcvAddressGroup
1707
+ DESCRIPTION
1708
+ "The applicability of this group MUST be defined by the
1709
+ media-specific MIBs. Media-specific MIBs must define the
1710
+ exact meaning, use, and semantics of the addresses in this
1711
+ group."
1712
+
1713
+ OBJECT ifLinkUpDownTrapEnable
1714
+ MIN-ACCESS read-only
1715
+ DESCRIPTION
1716
+ "Write access is not required."
1717
+
1718
+ OBJECT ifPromiscuousMode
1719
+ MIN-ACCESS read-only
1720
+ DESCRIPTION
1721
+ "Write access is not required."
1722
+
1723
+ OBJECT ifStackStatus
1724
+ SYNTAX INTEGER { active(1) } -- subset of RowStatus
1725
+ MIN-ACCESS read-only
1726
+ DESCRIPTION
1727
+ "Write access is not required, and only one of the six
1728
+ enumerated values for the RowStatus textual convention need
1729
+ be supported, specifically: active(1)."
1730
+
1731
+ OBJECT ifAdminStatus
1732
+ SYNTAX INTEGER { up(1), down(2) }
1733
+ MIN-ACCESS read-only
1734
+ DESCRIPTION
1735
+ "Write access is not required, nor is support for the value
1736
+ testing(3)."
1737
+ ::= { ifCompliances 1 }
1738
+
1739
+ ifCompliance2 MODULE-COMPLIANCE
1740
+ STATUS deprecated
1741
+ DESCRIPTION
1742
+ "A compliance statement defined in a previous version of
1743
+ this MIB module, for SNMP entities which have network
1744
+ interfaces."
1745
+
1746
+ MODULE -- this module
1747
+ MANDATORY-GROUPS { ifGeneralInformationGroup, ifStackGroup2,
1748
+ ifCounterDiscontinuityGroup }
1749
+
1750
+ GROUP ifFixedLengthGroup
1751
+ DESCRIPTION
1752
+ "This group is mandatory for all network interfaces which
1753
+ are character-oriented or transmit data in fixed-length
1754
+ transmission units."
1755
+
1756
+ GROUP ifHCFixedLengthGroup
1757
+ DESCRIPTION
1758
+ "This group is mandatory only for those network interfaces
1759
+ which are character-oriented or transmit data in fixed-
1760
+ length transmission units, and for which the value of the
1761
+ corresponding instance of ifSpeed is greater than 20,000,000
1762
+ bits/second."
1763
+
1764
+ GROUP ifPacketGroup
1765
+ DESCRIPTION
1766
+ "This group is mandatory for all network interfaces which
1767
+ are packet-oriented."
1768
+
1769
+ GROUP ifHCPacketGroup
1770
+ DESCRIPTION
1771
+ "This group is mandatory only for those network interfaces
1772
+ which are packet-oriented and for which the value of the
1773
+ corresponding instance of ifSpeed is greater than
1774
+ 650,000,000 bits/second."
1775
+
1776
+ GROUP ifRcvAddressGroup
1777
+ DESCRIPTION
1778
+ "The applicability of this group MUST be defined by the
1779
+ media-specific MIBs. Media-specific MIBs must define the
1780
+ exact meaning, use, and semantics of the addresses in this
1781
+ group."
1782
+
1783
+ OBJECT ifLinkUpDownTrapEnable
1784
+ MIN-ACCESS read-only
1785
+ DESCRIPTION
1786
+ "Write access is not required."
1787
+
1788
+ OBJECT ifPromiscuousMode
1789
+ MIN-ACCESS read-only
1790
+ DESCRIPTION
1791
+ "Write access is not required."
1792
+
1793
+ OBJECT ifStackStatus
1794
+ SYNTAX INTEGER { active(1) } -- subset of RowStatus
1795
+ MIN-ACCESS read-only
1796
+ DESCRIPTION
1797
+ "Write access is not required, and only one of the six
1798
+ enumerated values for the RowStatus textual convention need
1799
+ be supported, specifically: active(1)."
1800
+
1801
+ OBJECT ifAdminStatus
1802
+ SYNTAX INTEGER { up(1), down(2) }
1803
+ MIN-ACCESS read-only
1804
+ DESCRIPTION
1805
+ "Write access is not required, nor is support for the value
1806
+ testing(3)."
1807
+
1808
+ OBJECT ifAlias
1809
+ MIN-ACCESS read-only
1810
+ DESCRIPTION
1811
+ "Write access is not required."
1812
+ ::= { ifCompliances 2 }
1813
+
1814
+ END