telemetry-snmp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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