aboutsummaryrefslogtreecommitdiffstats
path: root/lib/snmp/mibs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/snmp/mibs')
-rw-r--r--lib/snmp/mibs/INET-ADDRESS-MIB.mib402
-rw-r--r--lib/snmp/mibs/Makefile.in194
-rw-r--r--lib/snmp/mibs/OTP-SNMPEA-MIB.mib569
-rw-r--r--lib/snmp/mibs/RFC-1212.mib74
-rw-r--r--lib/snmp/mibs/RFC-1215.mib30
-rw-r--r--lib/snmp/mibs/RFC1155-SMI.mib128
-rw-r--r--lib/snmp/mibs/RFC1213-MIB.mib2888
-rw-r--r--lib/snmp/mibs/SNMP-COMMUNITY-MIB.funcs2
-rw-r--r--lib/snmp/mibs/SNMP-COMMUNITY-MIB.mib377
-rw-r--r--lib/snmp/mibs/SNMP-FRAMEWORK-MIB.funcs4
-rw-r--r--lib/snmp/mibs/SNMP-FRAMEWORK-MIB.mib493
-rw-r--r--lib/snmp/mibs/SNMP-MPD-MIB.funcs6
-rw-r--r--lib/snmp/mibs/SNMP-MPD-MIB.mib140
-rw-r--r--lib/snmp/mibs/SNMP-NOTIFICATION-MIB.funcs3
-rw-r--r--lib/snmp/mibs/SNMP-NOTIFICATION-MIB.mib568
-rw-r--r--lib/snmp/mibs/SNMP-TARGET-MIB.funcs7
-rw-r--r--lib/snmp/mibs/SNMP-TARGET-MIB.mib629
-rw-r--r--lib/snmp/mibs/SNMP-USER-BASED-SM-MIB.funcs14
-rw-r--r--lib/snmp/mibs/SNMP-USER-BASED-SM-MIB.mib887
-rw-r--r--lib/snmp/mibs/SNMP-USM-AES-MIB.mib62
-rw-r--r--lib/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.funcs7
-rw-r--r--lib/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.mib805
-rw-r--r--lib/snmp/mibs/SNMPv2-CONF.mib290
-rw-r--r--lib/snmp/mibs/SNMPv2-MIB.funcs28
-rw-r--r--lib/snmp/mibs/SNMPv2-MIB.mib854
-rw-r--r--lib/snmp/mibs/SNMPv2-SMI.mib314
-rw-r--r--lib/snmp/mibs/SNMPv2-TC.mib535
-rw-r--r--lib/snmp/mibs/SNMPv2-TM.mib151
-rw-r--r--lib/snmp/mibs/STANDARD-MIB.funcs36
-rw-r--r--lib/snmp/mibs/STANDARD-MIB.mib528
-rw-r--r--lib/snmp/mibs/prebuild.skip1
-rw-r--r--lib/snmp/mibs/v1/.gitignore0
32 files changed, 11026 insertions, 0 deletions
diff --git a/lib/snmp/mibs/INET-ADDRESS-MIB.mib b/lib/snmp/mibs/INET-ADDRESS-MIB.mib
new file mode 100644
index 0000000000..a778cba6b7
--- /dev/null
+++ b/lib/snmp/mibs/INET-ADDRESS-MIB.mib
@@ -0,0 +1,402 @@
+INET-ADDRESS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, mib-2, Unsigned32 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+inetAddressMIB MODULE-IDENTITY
+ LAST-UPDATED "200502040000Z"
+ ORGANIZATION
+ "IETF Operations and Management Area"
+ CONTACT-INFO
+ "Juergen Schoenwaelder (Editor)
+ International University Bremen
+ P.O. Box 750 561
+ 28725 Bremen, Germany
+
+ Phone: +49 421 200-3587
+
+ Send comments to <[email protected]>."
+ DESCRIPTION
+ "This MIB module defines textual conventions for
+ representing Internet addresses. An Internet
+ address can be an IPv4 address, an IPv6 address,
+ or a DNS domain name. This module also defines
+ textual conventions for Internet port numbers,
+ autonomous system numbers, and the length of an
+ Internet address prefix.
+
+ Copyright (C) The Internet Society (2005). This version
+ of this MIB module is part of RFC 4001, see the RFC
+ itself for full legal notices."
+ REVISION "200502040000Z"
+ DESCRIPTION
+ "Third version, published as RFC 4001. This revision
+ introduces the InetZoneIndex, InetScopeType, and
+ InetVersion textual conventions."
+ REVISION "200205090000Z"
+ DESCRIPTION
+ "Second version, published as RFC 3291. This
+ revision contains several clarifications and
+ introduces several new textual conventions:
+ InetAddressPrefixLength, InetPortNumber,
+ InetAutonomousSystemNumber, InetAddressIPv4z,
+ and InetAddressIPv6z."
+ REVISION "200006080000Z"
+ DESCRIPTION
+ "Initial version, published as RFC 2851."
+ ::= { mib-2 76 }
+
+InetAddressType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A value that represents a type of Internet address.
+
+ unknown(0) An unknown address type. This value MUST
+ be used if the value of the corresponding
+ InetAddress object is a zero-length string.
+ It may also be used to indicate an IP address
+ that is not in one of the formats defined
+ below.
+
+ ipv4(1) An IPv4 address as defined by the
+ InetAddressIPv4 textual convention.
+
+ ipv6(2) An IPv6 address as defined by the
+ InetAddressIPv6 textual convention.
+
+ ipv4z(3) A non-global IPv4 address including a zone
+ index as defined by the InetAddressIPv4z
+ textual convention.
+
+ ipv6z(4) A non-global IPv6 address including a zone
+ index as defined by the InetAddressIPv6z
+ textual convention.
+
+ dns(16) A DNS domain name as defined by the
+ InetAddressDNS textual convention.
+
+ Each definition of a concrete InetAddressType value must be
+ accompanied by a definition of a textual convention for use
+ with that InetAddressType.
+
+ To support future extensions, the InetAddressType textual
+ convention SHOULD NOT be sub-typed in object type definitions.
+ It MAY be sub-typed in compliance statements in order to
+ require only a subset of these address types for a compliant
+ implementation.
+
+ Implementations must ensure that InetAddressType objects
+ and any dependent objects (e.g., InetAddress objects) are
+ consistent. An inconsistentValue error must be generated
+ if an attempt to change an InetAddressType object would,
+ for example, lead to an undefined InetAddress value. In
+
+ particular, InetAddressType/InetAddress pairs must be
+ changed together if the address type changes (e.g., from
+ ipv6(2) to ipv4(1))."
+ SYNTAX INTEGER {
+ unknown(0),
+ ipv4(1),
+ ipv6(2),
+ ipv4z(3),
+ ipv6z(4),
+ dns(16)
+ }
+
+InetAddress ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Denotes a generic Internet address.
+
+ An InetAddress value is always interpreted within the context
+ of an InetAddressType value. Every usage of the InetAddress
+ textual convention is required to specify the InetAddressType
+ object that provides the context. It is suggested that the
+ InetAddressType object be logically registered before the
+ object(s) that use the InetAddress textual convention, if
+ they appear in the same logical row.
+
+ The value of an InetAddress object must always be
+ consistent with the value of the associated InetAddressType
+ object. Attempts to set an InetAddress object to a value
+ inconsistent with the associated InetAddressType
+ must fail with an inconsistentValue error.
+
+ When this textual convention is used as the syntax of an
+ index object, there may be issues with the limit of 128
+ sub-identifiers specified in SMIv2, STD 58. In this case,
+ the object definition MUST include a 'SIZE' clause to
+ limit the number of potential instance sub-identifiers;
+ otherwise the applicable constraints MUST be stated in
+ the appropriate conceptual row DESCRIPTION clauses, or
+ in the surrounding documentation if there is no single
+ DESCRIPTION clause that is appropriate."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+InetAddressIPv4 ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1d.1d.1d.1d"
+ STATUS current
+ DESCRIPTION
+ "Represents an IPv4 network address:
+
+ Octets Contents Encoding
+ 1-4 IPv4 address network-byte order
+
+ The corresponding InetAddressType value is ipv4(1).
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (4))
+
+InetAddressIPv6 ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x"
+ STATUS current
+ DESCRIPTION
+ "Represents an IPv6 network address:
+
+ Octets Contents Encoding
+ 1-16 IPv6 address network-byte order
+
+ The corresponding InetAddressType value is ipv6(2).
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (16))
+
+InetAddressIPv4z ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1d.1d.1d.1d%4d"
+ STATUS current
+ DESCRIPTION
+ "Represents a non-global IPv4 network address, together
+ with its zone index:
+
+ Octets Contents Encoding
+ 1-4 IPv4 address network-byte order
+ 5-8 zone index network-byte order
+
+ The corresponding InetAddressType value is ipv4z(3).
+
+ The zone index (bytes 5-8) is used to disambiguate identical
+ address values on nodes that have interfaces attached to
+ different zones of the same scope. The zone index may contain
+ the special value 0, which refers to the default zone for each
+ scope.
+
+ This textual convention SHOULD NOT be used directly in object
+
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (8))
+
+InetAddressIPv6z ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x%4d"
+ STATUS current
+ DESCRIPTION
+ "Represents a non-global IPv6 network address, together
+ with its zone index:
+
+ Octets Contents Encoding
+ 1-16 IPv6 address network-byte order
+ 17-20 zone index network-byte order
+
+ The corresponding InetAddressType value is ipv6z(4).
+
+ The zone index (bytes 17-20) is used to disambiguate
+ identical address values on nodes that have interfaces
+ attached to different zones of the same scope. The zone index
+ may contain the special value 0, which refers to the default
+ zone for each scope.
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (20))
+
+InetAddressDNS ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS current
+ DESCRIPTION
+ "Represents a DNS domain name. The name SHOULD be fully
+ qualified whenever possible.
+
+ The corresponding InetAddressType is dns(16).
+
+ The DESCRIPTION clause of InetAddress objects that may have
+ InetAddressDNS values MUST fully describe how (and when)
+ these names are to be resolved to IP addresses.
+
+ The resolution of an InetAddressDNS value may require to
+ query multiple DNS records (e.g., A for IPv4 and AAAA for
+ IPv6). The order of the resolution process and which DNS
+ record takes precedence depends on the configuration of the
+ resolver.
+
+ This textual convention SHOULD NOT be used directly in object
+ definitions, as it restricts addresses to a specific format.
+ However, if it is used, it MAY be used either on its own or in
+ conjunction with InetAddressType, as a pair."
+ SYNTAX OCTET STRING (SIZE (1..255))
+
+InetAddressPrefixLength ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "Denotes the length of a generic Internet network address
+ prefix. A value of n corresponds to an IP address mask
+ that has n contiguous 1-bits from the most significant
+ bit (MSB), with all other bits set to 0.
+
+ An InetAddressPrefixLength value is always interpreted within
+ the context of an InetAddressType value. Every usage of the
+ InetAddressPrefixLength textual convention is required to
+ specify the InetAddressType object that provides the
+ context. It is suggested that the InetAddressType object be
+ logically registered before the object(s) that use the
+ InetAddressPrefixLength textual convention, if they appear
+ in the same logical row.
+
+ InetAddressPrefixLength values larger than
+ the maximum length of an IP address for a specific
+ InetAddressType are treated as the maximum significant
+ value applicable for the InetAddressType. The maximum
+ significant value is 32 for the InetAddressType
+ 'ipv4(1)' and 'ipv4z(3)' and 128 for the InetAddressType
+ 'ipv6(2)' and 'ipv6z(4)'. The maximum significant value
+ for the InetAddressType 'dns(16)' is 0.
+
+ The value zero is object-specific and must be defined as
+ part of the description of any object that uses this
+ syntax. Examples of the usage of zero might include
+ situations where the Internet network address prefix
+ is unknown or does not apply.
+
+ The upper bound of the prefix length has been chosen to
+ be consistent with the maximum size of an InetAddress."
+ SYNTAX Unsigned32 (0..2040)
+
+InetPortNumber ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "Represents a 16 bit port number of an Internet transport
+
+ layer protocol. Port numbers are assigned by IANA. A
+ current list of all assignments is available from
+ <http://www.iana.org/>.
+
+ The value zero is object-specific and must be defined as
+ part of the description of any object that uses this
+ syntax. Examples of the usage of zero might include
+ situations where a port number is unknown, or when the
+ value zero is used as a wildcard in a filter."
+ REFERENCE "STD 6 (RFC 768), STD 7 (RFC 793) and RFC 2960"
+ SYNTAX Unsigned32 (0..65535)
+
+InetAutonomousSystemNumber ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "Represents an autonomous system number that identifies an
+ Autonomous System (AS). An AS is a set of routers under a
+ single technical administration, using an interior gateway
+ protocol and common metrics to route packets within the AS,
+ and using an exterior gateway protocol to route packets to
+ other ASes'. IANA maintains the AS number space and has
+ delegated large parts to the regional registries.
+
+ Autonomous system numbers are currently limited to 16 bits
+ (0..65535). There is, however, work in progress to enlarge the
+ autonomous system number space to 32 bits. Therefore, this
+ textual convention uses an Unsigned32 value without a
+ range restriction in order to support a larger autonomous
+ system number space."
+ REFERENCE "RFC 1771, RFC 1930"
+ SYNTAX Unsigned32
+
+InetScopeType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a scope type. This textual convention can be used
+ in cases where a MIB has to represent different scope types
+ and there is no context information, such as an InetAddress
+ object, that implicitly defines the scope type.
+
+ Note that not all possible values have been assigned yet, but
+ they may be assigned in future revisions of this specification.
+ Applications should therefore be able to deal with values
+ not yet assigned."
+ REFERENCE "RFC 3513"
+ SYNTAX INTEGER {
+ -- reserved(0),
+ interfaceLocal(1),
+ linkLocal(2),
+ subnetLocal(3),
+ adminLocal(4),
+ siteLocal(5), -- site-local unicast addresses
+ -- have been deprecated by RFC 3879
+ -- unassigned(6),
+ -- unassigned(7),
+ organizationLocal(8),
+ -- unassigned(9),
+ -- unassigned(10),
+ -- unassigned(11),
+ -- unassigned(12),
+ -- unassigned(13),
+ global(14)
+ -- reserved(15)
+ }
+
+InetZoneIndex ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "d"
+ STATUS current
+ DESCRIPTION
+ "A zone index identifies an instance of a zone of a
+ specific scope.
+
+ The zone index MUST disambiguate identical address
+ values. For link-local addresses, the zone index will
+ typically be the interface index (ifIndex as defined in the
+ IF-MIB) of the interface on which the address is configured.
+
+ The zone index may contain the special value 0, which refers
+ to the default zone. The default zone may be used in cases
+ where the valid zone index is not known (e.g., when a
+ management application has to write a link-local IPv6
+ address without knowing the interface index value). The
+ default zone SHOULD NOT be used as an easy way out in
+ cases where the zone index for a non-global IPv6 address
+ is known."
+ REFERENCE "RFC4007"
+ SYNTAX Unsigned32
+
+InetVersion ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A value representing a version of the IP protocol.
+
+ unknown(0) An unknown or unspecified version of the IP
+ protocol.
+
+ ipv4(1) The IPv4 protocol as defined in RFC 791 (STD 5).
+
+ ipv6(2) The IPv6 protocol as defined in RFC 2460.
+
+ Note that this textual convention SHOULD NOT be used to
+ distinguish different address types associated with IP
+ protocols. The InetAddressType has been designed for this
+ purpose."
+ REFERENCE "RFC 791, RFC 2460"
+ SYNTAX INTEGER {
+ unknown(0),
+ ipv4(1),
+ ipv6(2)
+ }
+END
diff --git a/lib/snmp/mibs/Makefile.in b/lib/snmp/mibs/Makefile.in
new file mode 100644
index 0000000000..b85a8b0767
--- /dev/null
+++ b/lib/snmp/mibs/Makefile.in
@@ -0,0 +1,194 @@
+#-*-makefile-*- ; force emacs to enter makefile-mode
+
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1996-2009. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
+# Version 1.1, (the "License"); you may not use this file except in
+# compliance with the License. You should have received a copy of the
+# Erlang Public License along with this software. If not, it can be
+# retrieved online at http://www.erlang.org/.
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# %CopyrightEnd%
+
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../vsn.mk
+VSN = $(SNMP_VSN)
+
+# ----------------------------------------------------
+# Configured variables
+# ----------------------------------------------------
+PERL = @PERL@
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/snmp-$(VSN)
+
+# ----------------------------------------------------
+# Common macros
+# ----------------------------------------------------
+
+# NOTE:
+# 1) Order is important; some MIBs include others
+# 2) The OTP-REG mib actually belongs to another
+# application (otp_mibs), and is exported by this
+# app. But since that app is built later, we have
+# to built it here in order to be able to build
+# OTP-SNMPEA-MIB (that needs otpModules and
+# otpApplications).
+MIBS_A = \
+ RFC1213-MIB \
+ STANDARD-MIB \
+ SNMPv2-TM \
+ SNMPv2-MIB \
+ SNMP-FRAMEWORK-MIB \
+ SNMP-MPD-MIB \
+ SNMP-TARGET-MIB \
+ SNMP-NOTIFICATION-MIB \
+ SNMP-COMMUNITY-MIB \
+ SNMP-USER-BASED-SM-MIB \
+ SNMP-VIEW-BASED-ACM-MIB \
+ SNMP-USM-AES-MIB \
+ INET-ADDRESS-MIB
+
+MIBS_B = OTP-SNMPEA-MIB
+
+BUILD_MIBS = \
+ $(MIBS_A) \
+ OTP-REG \
+ $(MIBS_B)
+
+MIBS = $(MIBS_A) $(MIBS_B)
+
+STD_v1_MIB_FILES = \
+ RFC1155-SMI.mib \
+ RFC-1212.mib \
+ RFC-1215.mib
+
+STD_v2_MIB_FILES = \
+ SNMPv2-SMI.mib \
+ SNMPv2-TC.mib \
+ SNMPv2-CONF.mib
+
+FUNCS_FILES = \
+ STANDARD-MIB.funcs \
+ SNMPv2-MIB.funcs \
+ SNMP-NOTIFICATION-MIB.funcs \
+ SNMP-TARGET-MIB.funcs
+
+V1_MIB_FILES = v1/OTP-SNMPEA-MIB.mib.v1
+
+MIB_FILES = $(MIBS:%=%.mib)
+BIN_TARGETS = $(MIBS:%=$(SNMP_BIN_TARGET_DIR)/%.bin)
+HRL_TARGETS = $(MIBS:%=$(SNMP_HRL_TARGET_DIR)/%.hrl)
+
+HRL_FILES = $(SNMP_HRL_TARGET_DIR)/SNMPv2-TC.hrl \
+ $(HRL_TARGETS)
+
+TARGET_FILES = \
+ $(ERL_TOP)/lib/snmp/bin/snmp-v2tov1 \
+ $(BUILD_MIBS:%=$(SNMP_BIN_TARGET_DIR)/%.bin) \
+ $(HRL_TARGETS) \
+ $(V1_MIB_FILES)
+
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+
+SNMP_FLAGS += -pa ../ebin +version
+
+ifneq ($(MIBS_VERBOSITY),)
+SNMP_FLAGS += +'{verbosity,$(MIBS_VERBOSITY)}'
+endif
+
+ifneq ($(MIBS_REFERENCE),)
+SNMP_FLAGS += +reference
+endif
+
+ifneq ($(MIBS_OPTIONS),)
+SNMP_FLAGS += +options
+endif
+
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+
+OTP_MIBDIR = $(shell if test -d ../../otp_mibs; then echo otp_mibs; \
+ else echo sasl; fi)
+
+debug opt: $(TARGET_FILES)
+
+$(ERL_TOP)/lib/snmp/bin/snmp-v2tov1: $(ERL_TOP)/lib/snmp/bin/snmp-v2tov1.src
+ $(PERL) -p -e 's?%PERL%?$(PERL)? ' < $< > $@
+ chmod 755 $@
+
+$(SNMP_BIN_TARGET_DIR)/OTP-REG.bin: $(ERL_TOP)/lib/$(OTP_MIBDIR)/mibs/OTP-REG.mib
+ $(ERLC) -pa $(SNMP_TOOLKIT)/ebin -I $(SNMP_TOOLKIT)/priv/mibs $(SNMP_FLAGS) -o $(SNMP_BIN_TARGET_DIR) $<
+
+clean:
+ rm -f $(TARGET_FILES)
+
+docs:
+
+conf:
+ cd ..; $(MAKE) conf
+
+info:
+ @echo "SNMP_FLAGS = $(SNMP_FLAGS)"
+ @echo ""
+ @echo "MIBS = $(MIBS)"
+ @echo ""
+ @echo "BUILD_MIBS = $(BUILD_MIBS)"
+ @echo ""
+ @echo "MIB_FILES = $(MIB_FILES)"
+ @echo ""
+ @echo "BIN_TARGETS = $(BIN_TARGETS)"
+ @echo ""
+ @echo "HRL_TARGETS = $(HRL_TARGETS)"
+ @echo ""
+ @echo "TARGET_FILES = $(TARGET_FILES)"
+ @echo ""
+ @echo "OTP_MIBDIR = $(OTP_MIBDIR)"
+ @echo ""
+ @echo "SNMP_VSN = $(SNMP_VSN)"
+ @echo "VSN = $(VSN)"
+ @echo "RELSYSDIR = $(RELSYSDIR)"
+
+v1/%.mib.v1: %.mib
+ $(ERL_TOP)/lib/snmp/bin/snmp-v2tov1 -o $@ $<
+
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/mibs
+ $(INSTALL_DIR) $(RELSYSDIR)/mibs/v1
+ $(INSTALL_DATA) $(MIB_FILES) $(RELSYSDIR)/mibs
+ $(INSTALL_DATA) $(STD_v2_MIB_FILES) $(RELSYSDIR)/mibs
+ $(INSTALL_DATA) $(FUNCS_FILES) $(RELSYSDIR)/mibs
+ $(INSTALL_DATA) $(STD_v1_MIB_FILES) $(RELSYSDIR)/mibs/v1
+ $(INSTALL_DATA) $(V1_MIB_FILES) $(RELSYSDIR)/mibs/v1
+ $(INSTALL_DIR) $(RELSYSDIR)/include
+ $(INSTALL_DATA) $(HRL_FILES) $(RELSYSDIR)/include
+ $(INSTALL_DIR) $(RELSYSDIR)/priv/mibs
+ $(INSTALL_DATA) $(BIN_TARGETS) $(RELSYSDIR)/priv/mibs
+
+release_docs_spec:
+
diff --git a/lib/snmp/mibs/OTP-SNMPEA-MIB.mib b/lib/snmp/mibs/OTP-SNMPEA-MIB.mib
new file mode 100644
index 0000000000..b0b598c6b8
--- /dev/null
+++ b/lib/snmp/mibs/OTP-SNMPEA-MIB.mib
@@ -0,0 +1,569 @@
+OTP-SNMPEA-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ Integer32, IpAddress
+ FROM SNMPv2-SMI
+ DisplayString, RowStatus, StorageType
+ FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF
+ otpModules, otpApplications
+ FROM OTP-REG
+ ;
+
+otpSnmpeaModule MODULE-IDENTITY
+ LAST-UPDATED "0305130000Z"
+ ORGANIZATION "Ericsson"
+ CONTACT-INFO
+ "Contact: Erlang Support see license agreement for Erlang/OTP."
+ DESCRIPTION
+ "This MIB module defines MIB objects for the SNMPEA
+ component in OTP."
+
+ REVISION "0305130000Z"
+ DESCRIPTION
+ "Changed CONTACT-INFO as it was outdated, made it more generic
+ to avoid such changes in the future."
+
+ REVISION "9808280000Z"
+ DESCRIPTION
+ "Since there are standard MIBs in the SNMPv3 framework that
+ implements the functionality defined in this MIB, all objects in
+ this MIB is now obsolete. There are still a few OID assignments
+ defined in this MIB.
+
+ Removed intCommunityTable; replaced by snmpCommunityTable in
+ SNMP-COMMUNITY-MIB.
+
+ Removed intAddressTable; replaced by SNMP-TARGET-MIB.
+
+ Removed intAgentMaxPacketSize, replaced by snmpEngineMaxPacketSize
+ in SNMP-FRAMEWORK-MIB.
+
+ Removed intAgentIpAddress and intAgentUDPPort.
+
+ Removed intViewTable, replaced by SNMP-VIEW-BASED-ACM-MIB."
+
+ REVISION "9804160000Z"
+ DESCRIPTION
+ "Updated to support MIBs from SNMPv3. Since SNMPv3 standardizes
+ some of the functionality provided by this MIB, we're using the
+ standard instead.
+
+ Removed intTrapDestTable; replaced by SNMP-TARGET-MIB and
+ SNMP-NOTIFICATION-MIB."
+
+ REVISION "9709220900Z"
+ DESCRIPTION
+ "The initial version of this MIB module. It is the old
+ INTERNAL-MIB renamed."
+ ::= { otpModules 5 }
+
+otpSnmpeaMIB OBJECT IDENTIFIER ::= { otpApplications 3 }
+otpSnmpeaMIBConformance
+ OBJECT IDENTIFIER ::= { otpSnmpeaMIB 1 }
+otpSnmpeaMIBObjects
+ OBJECT IDENTIFIER ::= { otpSnmpeaMIB 2 }
+
+snmpeaAdm OBJECT IDENTIFIER ::= { otpSnmpeaMIBObjects 1}
+community OBJECT IDENTIFIER ::= { snmpeaAdm 1 }
+trap OBJECT IDENTIFIER ::= { snmpeaAdm 2 }
+view OBJECT IDENTIFIER ::= { snmpeaAdm 3 }
+
+
+-- Obsolete objects
+
+-- The Administration Group
+--
+-- This group consists of objects to configure the access for
+-- managers to the MIB tree.
+--
+-- These objects were previously defined in INTERNAL-MIB
+
+intCommunityTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IntCommunityEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "This table defines access for the different
+ communities.
+
+ When a request comes from a certain ip address,
+ referring to a community string, the mib view
+ and access corresponding to these are looked up
+ in this table. Then the operation is validatated against
+ the access, and all requested objects validated against
+ the mib view."
+ ::= { community 1 }
+
+intCommunityEntry OBJECT-TYPE
+ SYNTAX IntCommunityEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ ""
+ INDEX { intCommunityDestination, intCommunityString }
+ ::= { intCommunityTable 1 }
+
+IntCommunityEntry ::=
+ SEQUENCE {
+ intCommunityDestination IpAddress,
+ intCommunityString DisplayString,
+ intCommunityViewIndex Integer32,
+ intCommunityAccess INTEGER,
+ intCommunityStatus RowStatus
+ }
+
+intCommunityDestination OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "The ip address of a management station. The special
+ ip address {0.0.0.0} is a wildcard, meaning all possible
+ ip addresses. In this way, access can be granted to all
+ ip addressed for some communities."
+ ::= { intCommunityEntry 1 }
+
+intCommunityString OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "The community string, defining the community."
+ ::= { intCommunityEntry 2 }
+
+intCommunityViewIndex OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "Identifies a mib view. Index into the
+ intViewTable."
+ ::= { intCommunityEntry 3 }
+
+intCommunityAccess OBJECT-TYPE
+ SYNTAX INTEGER { read(1), readWrite(2) }
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "Defines which operations the manager can perform
+ on the objects in the mib view."
+ ::= { intCommunityEntry 4 }
+
+intCommunityStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The status of this conceptual row in the
+ intCommunityTable."
+ ::= { intCommunityEntry 5 }
+
+intAgentIpAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The IP address of this agent."
+ ::= { community 2 }
+
+intAgentUDPPort OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The UDP port the agent listens to."
+ ::= { community 3 }
+
+intAgentMaxPacketSize OBJECT-TYPE
+ SYNTAX Integer32 (484..65535)
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The maximum packet size in bytes this agent will send to a
+ manager."
+ ::= { community 4 }
+
+
+intAddressTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IntAddressEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "This table holds UDP related information on each known
+ management station."
+ ::= { community 5 }
+
+
+intAddressEntry OBJECT-TYPE
+ SYNTAX IntAddressEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ ""
+ INDEX { intAddressDestination }
+ ::= { intAddressTable 1 }
+
+IntAddressEntry ::=
+ SEQUENCE {
+ intAddressDestination IpAddress,
+ intAddressUDPPort Integer32,
+ intAddressMaxPacketSize Integer32 (484..65535),
+ intAddressStatus RowStatus
+ }
+
+intAddressDestination OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "The ip address of the management station."
+ ::= { intAddressEntry 1 }
+
+intAddressUDPPort OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The UDP port to which traps will be sent to
+ this destination."
+ DEFVAL { 162 }
+ ::= { intAddressEntry 2 }
+
+intAddressMaxPacketSize OBJECT-TYPE
+ SYNTAX Integer32 (484..65535)
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The maximum packet size in bytes for Messages
+ sent to this destination. The max size of a packet
+ sent to this destination will be the minumim of
+ this variable and agentMaxPacketSize.0."
+ ::= { intAddressEntry 3 }
+
+intAddressStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The status of this conceptual row in the
+ intAddressTable."
+ ::= { intAddressEntry 4 }
+
+intTrapDestTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IntTrapDestEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "The intTrapDestTable defines to which destination all traps
+ for a specific community should be sent."
+ ::= { trap 1 }
+
+intTrapDestEntry OBJECT-TYPE
+ SYNTAX IntTrapDestEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ ""
+ INDEX { intTrapDestCommunityString, intTrapDestDestination }
+ ::= { intTrapDestTable 1 }
+
+IntTrapDestEntry ::=
+ SEQUENCE {
+ intTrapDestCommunityString DisplayString,
+ intTrapDestDestination IpAddress,
+ intTrapDestStatus RowStatus,
+ intTrapDestSnmpVersion INTEGER
+ }
+
+intTrapDestCommunityString OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ ""
+ ::= { intTrapDestEntry 1 }
+
+intTrapDestDestination OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ ""
+ ::= { intTrapDestEntry 2 }
+
+intTrapDestStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The status of this conceptual row in the
+ intTrapDestTable."
+ ::= { intTrapDestEntry 3 }
+
+intTrapDestSnmpVersion OBJECT-TYPE
+ SYNTAX INTEGER { v1(1), v2(2) }
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The SNMP version of the manager. If it is v1,
+ SNMPv1Traps are sent. If it is v2, SNMPv2Traps are sent"
+ ::= { intTrapDestEntry 4 }
+
+intViewTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IntViewEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "Locally held information about the MIB views
+ known to this agent.
+
+ Each MIB view is defined by two
+ collections of view subtrees: the included view
+ subtrees, and the excluded view subtrees. Every
+ such subtree, both included and excluded, is
+ defined in this table.
+
+ To determine if a particular object instance is in
+ a particular MIB view, compare the object
+ instance's OBJECT IDENTIFIER with each of the MIB
+ view's entries in this table. If none match, then
+ the object instance is not in the MIB view. If
+ one or more match, then the object instance is
+ included in, or excluded from, the MIB view
+ according to the value of viewType in the entry
+ whose value of viewSubtree has the most sub-
+ identifiers. If multiple entries match and have
+ the same number of sub-identifiers, then the
+ lexicographically greatest instance of viewType
+ determines the inclusion or exclusion.
+
+ An object instance's OBJECT IDENTIFIER X matches
+ an entry in this table when the number of sub-
+ identifiers in X is at least as many as in the
+ value of viewSubtree for the entry, and each sub-
+ identifier in the value of viewSubtree matches its
+ corresponding sub-identifier in X. Two sub-
+ identifiers match either if the corresponding bit
+ of viewMask is zero (the 'wild card' value), or if
+ they are equal.
+
+ Due to this 'wild card' capability, we introduce
+ the term, a 'family' of view subtrees, to refer to
+ the set of subtrees defined by a particular
+ combination of values of viewSubtree and viewMask.
+ In the case where no 'wild card' is defined in
+ viewMask, the family of view subtrees reduces to a
+ single view subtree."
+ ::= { view 1 }
+
+intViewEntry OBJECT-TYPE
+ SYNTAX IntViewEntry
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "Information on a particular family of view
+ subtrees included in or excluded from a particular
+ MIB view.
+
+ Implementations must not restrict the number of
+ families of view subtrees for a given MIB view,
+ except as dictated by resource constraints on the
+ overall number of entries in the viewTable."
+ INDEX { intViewIndex, intViewSubtree }
+ ::= { intViewTable 1 }
+
+IntViewEntry ::=
+ SEQUENCE {
+ intViewIndex Integer32,
+ intViewSubtree OBJECT IDENTIFIER,
+ intViewMask OCTET STRING,
+ intViewType INTEGER,
+ intViewStorageType StorageType,
+ intViewStatus RowStatus
+ }
+
+
+intViewIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "A unique value for each MIB view. The value for
+ each MIB view must remain constant at least from
+ one re-initialization of the entity's network
+ management system to the next re-initialization."
+ ::= { intViewEntry 1 }
+
+intViewSubtree OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS obsolete
+ DESCRIPTION
+ "A MIB subtree."
+ ::= { intViewEntry 2 }
+
+intViewMask OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (0..16))
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The bit mask which, in combination with the
+ corresponding instance of viewSubtree, defines a
+ family of view subtrees.
+
+ Each bit of this bit mask corresponds to a sub-
+ identifier of viewSubtree, with the most
+ significant bit of the i-th octet of this octet
+ string value (extended if necessary, see below)
+ corresponding to the (8*i - 7)-th sub-identifier,
+ and the least significant bit of the i-th octet of
+ this octet string corresponding to the (8*i)-th
+ sub-identifier, where i is in the range 1 through
+ 16.
+
+ Each bit of this bit mask specifies whether or not
+ the corresponding sub-identifiers must match when
+ determining if an OBJECT IDENTIFIER is in this
+ family of view subtrees; a '1' indicates that an
+ exact match must occur; a '0' indicates 'wild
+ card', i.e., any sub-identifier value matches.
+
+
+ Thus, the OBJECT IDENTIFIER X of an object
+ instance is contained in a family of view subtrees
+ if the following criteria are met:
+
+ for each sub-identifier of the value of
+ viewSubtree, either:
+
+ the i-th bit of viewMask is 0, or
+
+ the i-th sub-identifier of X is equal to
+ the i-th sub-identifier of the value of
+ viewSubtree.
+
+ If the value of this bit mask is M bits long and
+ there are more than M sub-identifiers in the
+ corresponding instance of viewSubtree, then the
+ bit mask is extended with 1's to be the required
+ length.
+
+ Note that when the value of this object is the
+ zero-length string, this extension rule results in
+ a mask of all-1's being used (i.e., no 'wild
+ card'), and the family of view subtrees is the one
+ view subtree uniquely identified by the
+ corresponding instance of viewSubtree."
+ DEFVAL { ''H }
+ ::= { intViewEntry 3 }
+
+
+intViewType OBJECT-TYPE
+ SYNTAX INTEGER {
+ included(1),
+ excluded(2)
+ }
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The status of a particular family of view
+ subtrees within the particular
+ MIB view. The value 'included(1)' indicates that
+ the corresponding instances of viewSubtree and
+ viewMask define a family of view subtrees included
+ in the MIB view. The value 'excluded(2)'
+ indicates that the corresponding instances of
+ viewSubtree and viewMask define a family of view
+ subtrees excluded from the MIB view."
+ DEFVAL { included }
+ ::= { intViewEntry 4 }
+
+intViewStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The storage type for this conceptual row in the
+ intViewTable."
+ DEFVAL { nonVolatile }
+ ::= { intViewEntry 5 }
+
+intViewStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS obsolete
+ DESCRIPTION
+ "The status of this conceptual row in the
+ intViewTable."
+ ::= { intViewEntry 6 }
+
+-- conformance information
+
+otpSnmpeaMIBCompliances
+ OBJECT IDENTIFIER ::= { otpSnmpeaMIBConformance 1 }
+otpSnmpeaMIBGroups
+ OBJECT IDENTIFIER ::= { otpSnmpeaMIBConformance 2 }
+
+
+-- compliance statements
+
+otpSnmpeaBasicCompliance MODULE-COMPLIANCE
+ STATUS obsolete
+ DESCRIPTION
+ "The compliance statement for SNMPv2 entities which
+ implement the OTP-SNMPEA-MIB."
+ MODULE -- this module
+ MANDATORY-GROUPS { addressGroup }
+ ::= { otpSnmpeaMIBCompliances 1 }
+
+
+-- units of conformance
+
+communityGroup OBJECT-GROUP
+ OBJECTS { intCommunityViewIndex,
+ intCommunityAccess,
+ intCommunityStatus }
+ STATUS obsolete
+ DESCRIPTION
+ "A collection of objects providing basic instrumentation
+ of the load of the OTP system."
+ ::= { otpSnmpeaMIBGroups 1 }
+
+addressGroup OBJECT-GROUP
+ OBJECTS { intAgentIpAddress,
+ intAgentUDPPort,
+ intAgentMaxPacketSize,
+ intAddressUDPPort,
+ intAddressMaxPacketSize,
+ intAddressStatus }
+ STATUS obsolete
+ DESCRIPTION
+ "A collection of objects providing basic instrumentation
+ of the load of the OTP system."
+ ::= { otpSnmpeaMIBGroups 2 }
+
+trapGroup OBJECT-GROUP
+ OBJECTS { intTrapDestStatus,
+ intTrapDestSnmpVersion }
+ STATUS obsolete
+ DESCRIPTION
+ "A collection of objects providing basic instrumentation
+ of the load of the OTP system."
+ ::= { otpSnmpeaMIBGroups 3 }
+
+viewGroup OBJECT-GROUP
+ OBJECTS { intViewMask,
+ intViewType,
+ intViewStorageType,
+ intViewStatus }
+ STATUS obsolete
+ DESCRIPTION
+ "A collection of objects providing basic instrumentation
+ of the load of the OTP system."
+ ::= { otpSnmpeaMIBGroups 4 }
+
+
+END
diff --git a/lib/snmp/mibs/RFC-1212.mib b/lib/snmp/mibs/RFC-1212.mib
new file mode 100644
index 0000000000..eedb74a9a9
--- /dev/null
+++ b/lib/snmp/mibs/RFC-1212.mib
@@ -0,0 +1,74 @@
+RFC-1212 DEFINITIONS ::= BEGIN
+
+IMPORTS
+ ObjectName
+ FROM RFC1155-SMI
+ DisplayString
+ FROM RFC1158-MIB;
+
+OBJECT-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ -- must conform to
+ -- RFC1155's ObjectSyntax
+ "SYNTAX" type(ObjectSyntax)
+ "ACCESS" Access
+ "STATUS" Status
+ DescrPart
+ ReferPart
+ IndexPart
+ DefValPart
+ VALUE NOTATION ::= value (VALUE ObjectName)
+
+ Access ::= "read-only"
+ | "read-write"
+ | "write-only"
+ | "not-accessible"
+ Status ::= "mandatory"
+ | "optional"
+ | "obsolete"
+ | "deprecated"
+
+ DescrPart ::=
+ "DESCRIPTION" value (description DisplayString)
+ | empty
+
+ ReferPart ::=
+ "REFERENCE" value (reference DisplayString)
+ | empty
+
+ IndexPart ::=
+ "INDEX" "{" IndexTypes "}"
+ | empty
+ IndexTypes ::=
+ IndexType | IndexTypes "," IndexType
+ IndexType ::=
+ -- if indexobject, use the SYNTAX
+ -- value of the correspondent
+ -- OBJECT-TYPE invocation
+ value (indexobject ObjectName)
+ -- otherwise use named SMI type
+ -- must conform to IndexSyntax below
+ | type (indextype)
+
+ DefValPart ::=
+ "DEFVAL" "{" value (defvalue ObjectSyntax) "}"
+ | empty
+ END
+
+IndexSyntax ::=
+ CHOICE {
+ number
+ INTEGER (0..MAX),
+ string
+ OCTET STRING,
+ object
+ OBJECT IDENTIFIER,
+ address
+ NetworkAddress,
+ ipAddress
+ IpAddress
+ }
+
+END
+
diff --git a/lib/snmp/mibs/RFC-1215.mib b/lib/snmp/mibs/RFC-1215.mib
new file mode 100644
index 0000000000..046cbb9e01
--- /dev/null
+++ b/lib/snmp/mibs/RFC-1215.mib
@@ -0,0 +1,30 @@
+RFC-1215 DEFINITIONS ::= BEGIN
+
+IMPORTS
+ ObjectName
+ FROM RFC1155-SMI;
+
+TRAP-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "ENTERPRISE" value (enterprise OBJECT IDENTIFIER)
+ VarPart
+ DescrPart
+ ReferPart
+ VALUE NOTATION ::=
+ value (VALUE INTEGER)
+ VarPart ::=
+ "VARIABLES" "{" VarTypes "}"
+ | empty
+ VarTypes ::=
+ VarType | VarTypes "," VarType
+ VarType ::=
+ value (vartype ObjectName)
+ DescrPart ::=
+ "DESCRIPTION" value (description DisplayString)
+ | empty
+ ReferPart ::=
+ "REFERENCE" value (reference DisplayString)
+ | empty
+END
+
diff --git a/lib/snmp/mibs/RFC1155-SMI.mib b/lib/snmp/mibs/RFC1155-SMI.mib
new file mode 100644
index 0000000000..8d45610a22
--- /dev/null
+++ b/lib/snmp/mibs/RFC1155-SMI.mib
@@ -0,0 +1,128 @@
+RFC1155-SMI DEFINITIONS ::= BEGIN
+
+EXPORTS -- EVERYTHING
+ internet, directory, mgmt,
+ experimental, private, enterprises,
+ OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,
+ ApplicationSyntax, NetworkAddress, IpAddress,
+ Counter, Gauge, TimeTicks, Opaque;
+
+-- the path to the root
+
+internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
+
+directory OBJECT IDENTIFIER ::= { internet 1 }
+
+mgmt OBJECT IDENTIFIER ::= { internet 2 }
+
+experimental OBJECT IDENTIFIER ::= { internet 3 }
+
+private OBJECT IDENTIFIER ::= { internet 4 }
+enterprises OBJECT IDENTIFIER ::= { private 1 }
+
+-- definition of object types
+
+OBJECT-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
+ "ACCESS" Access
+ "STATUS" Status
+ VALUE NOTATION ::= value (VALUE ObjectName)
+
+ Access ::= "read-only"
+ | "read-write"
+ | "write-only"
+ | "not-accessible"
+ Status ::= "mandatory"
+ | "optional"
+ | "obsolete"
+END
+
+-- names of objects in the MIB
+
+ObjectName ::=
+ OBJECT IDENTIFIER
+
+ -- syntax of objects in the MIB
+
+ ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+
+ -- note that simple SEQUENCEs are not directly
+ -- mentioned here to keep things simple (i.e.,
+ -- prevent mis-use). However, application-wide
+ -- types which are IMPLICITly encoded simple
+ -- SEQUENCEs may appear in the following CHOICE
+
+ application-wide
+ ApplicationSyntax
+ }
+
+ SimpleSyntax ::=
+ CHOICE {
+ number
+ INTEGER,
+
+ string
+ OCTET STRING,
+
+ object
+ OBJECT IDENTIFIER,
+
+ empty
+ NULL
+ }
+
+ ApplicationSyntax ::=
+ CHOICE {
+ address
+ NetworkAddress,
+
+ counter
+ Counter,
+
+ gauge
+ Gauge,
+
+ ticks
+ TimeTicks,
+
+ arbitrary
+ Opaque
+
+ -- other application-wide types, as they are
+ -- defined, will be added here
+ }
+
+
+ -- application-wide types
+
+ NetworkAddress ::=
+ CHOICE {
+ internet
+ IpAddress
+ }
+
+ IpAddress ::=
+ [APPLICATION 0] -- in network-byte order
+ IMPLICIT OCTET STRING (SIZE (4))
+
+ Counter ::=
+ [APPLICATION 1]
+ IMPLICIT INTEGER (0..4294967295)
+
+ Gauge ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+ TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+ Opaque ::=
+ [APPLICATION 4] -- arbitrary ASN.1 value,
+ IMPLICIT OCTET STRING -- "double-wrapped"
+
+END
diff --git a/lib/snmp/mibs/RFC1213-MIB.mib b/lib/snmp/mibs/RFC1213-MIB.mib
new file mode 100644
index 0000000000..0421e64d62
--- /dev/null
+++ b/lib/snmp/mibs/RFC1213-MIB.mib
@@ -0,0 +1,2888 @@
+ RFC1213-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ mgmt, NetworkAddress, IpAddress, Counter, Gauge,
+ TimeTicks
+ FROM RFC1155-SMI
+ OBJECT-TYPE
+ FROM RFC-1212;
+
+ -- This MIB module uses the extended OBJECT-TYPE macro as
+ -- defined in [14];
+
+
+ -- MIB-II (same prefix as MIB-I)
+
+ mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
+
+ -- textual conventions
+
+ DisplayString ::=
+ OCTET STRING
+ -- This data type is used to model textual information taken
+ -- from the NVT ASCII character set. By convention, objects
+ -- with this syntax are declared as having
+
+
+
+ --
+ -- SIZE (0..255)
+
+ PhysAddress ::=
+ OCTET STRING
+ -- This data type is used to model media addresses. For many
+ -- types of media, this will be in a binary representation.
+ -- For example, an ethernet address would be represented as
+ -- a string of 6 octets.
+
+
+ -- groups in MIB-II
+
+ system OBJECT IDENTIFIER ::= { mib-2 1 }
+
+ interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
+
+ at OBJECT IDENTIFIER ::= { mib-2 3 }
+
+ ip OBJECT IDENTIFIER ::= { mib-2 4 }
+
+ icmp OBJECT IDENTIFIER ::= { mib-2 5 }
+
+ tcp OBJECT IDENTIFIER ::= { mib-2 6 }
+
+ udp OBJECT IDENTIFIER ::= { mib-2 7 }
+
+ egp OBJECT IDENTIFIER ::= { mib-2 8 }
+
+ -- historical (some say hysterical)
+ -- cmot OBJECT IDENTIFIER ::= { mib-2 9 }
+
+ transmission OBJECT IDENTIFIER ::= { mib-2 10 }
+
+ snmp OBJECT IDENTIFIER ::= { mib-2 11 }
+
+
+ -- the System group
+
+ -- Implementation of the System group is mandatory for all
+ -- systems. If an agent is not configured to have a value
+ -- for any of these variables, a string of length 0 is
+ -- returned.
+
+ sysDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+
+
+
+
+
+ DESCRIPTION
+ "A textual description of the entity. This value
+ should include the full name and version
+ identification of the system's hardware type,
+ software operating-system, and networking
+ software. It is mandatory that this only contain
+ printable ASCII characters."
+ ::= { system 1 }
+
+ sysObjectID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The vendor's authoritative identification of the
+ network management subsystem contained in the
+ entity. This value is allocated within the SMI
+ enterprises subtree (1.3.6.1.4.1) and provides an
+ easy and unambiguous means for determining `what
+ kind of box' is being managed. For example, if
+ vendor `Flintstones, Inc.' was assigned the
+ subtree 1.3.6.1.4.1.4242, it could assign the
+ identifier 1.3.6.1.4.1.4242.1.1 to its `Fred
+ Router'."
+ ::= { system 2 }
+
+ sysUpTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time (in hundredths of a second) since the
+ network management portion of the system was last
+ re-initialized."
+ ::= { system 3 }
+
+ sysContact OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The textual identification of the contact person
+ for this managed node, together with information
+ on how to contact this person."
+ ::= { system 4 }
+
+ sysName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+
+
+
+
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An administratively-assigned name for this
+ managed node. By convention, this is the node's
+ fully-qualified domain name."
+ ::= { system 5 }
+
+ sysLocation OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The physical location of this node (e.g.,
+ `telephone closet, 3rd floor')."
+ ::= { system 6 }
+
+ sysServices OBJECT-TYPE
+ SYNTAX INTEGER (0..127)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A value which indicates the set of services that
+ this entity primarily offers.
+
+ The value is a sum. This sum initially takes the
+ value zero, Then, for each layer, L, in the range
+ 1 through 7, that this node performs transactions
+ for, 2 raised to (L - 1) is added to the sum. For
+ example, a node which performs primarily routing
+ functions would have a value of 4 (2^(3-1)). In
+ contrast, a node which is a host offering
+ application services would have a value of 72
+ (2^(4-1) + 2^(7-1)). Note that in the context of
+ the Internet suite of protocols, values should be
+ calculated accordingly:
+
+ layer functionality
+ 1 physical (e.g., repeaters)
+ 2 datalink/subnetwork (e.g., bridges)
+ 3 internet (e.g., IP gateways)
+ 4 end-to-end (e.g., IP hosts)
+ 7 applications (e.g., mail relays)
+
+ For systems including OSI protocols, layers 5 and
+ 6 may also be counted."
+ ::= { system 7 }
+
+
+
+
+
+
+ -- the Interfaces group
+
+ -- Implementation of the Interfaces group is mandatory for
+ -- all systems.
+
+ ifNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of network interfaces (regardless of
+ their current state) present on this system."
+ ::= { interfaces 1 }
+
+
+ -- the Interfaces table
+
+ -- The Interfaces table contains information on the entity's
+ -- interfaces. Each interface is thought of as being
+ -- attached to a `subnetwork'. Note that this term should
+ -- not be confused with `subnet' which refers to an
+ -- addressing partitioning scheme used in the Internet suite
+ -- of protocols.
+
+ ifTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IfEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of interface entries. The number of
+ entries is given by the value of ifNumber."
+ ::= { interfaces 2 }
+
+ ifEntry OBJECT-TYPE
+ SYNTAX IfEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An interface entry containing objects at the
+ subnetwork layer and below for a particular
+ interface."
+ INDEX { ifIndex }
+ ::= { ifTable 1 }
+
+ IfEntry ::=
+ SEQUENCE {
+ ifIndex
+ INTEGER,
+ ifDescr
+ DisplayString,
+ ifType
+ INTEGER,
+ ifMtu
+ INTEGER,
+ ifSpeed
+ Gauge,
+ ifPhysAddress
+ PhysAddress,
+ ifAdminStatus
+ INTEGER,
+ ifOperStatus
+ INTEGER,
+ ifLastChange
+ TimeTicks,
+ ifInOctets
+ Counter,
+ ifInUcastPkts
+ Counter,
+ ifInNUcastPkts
+ Counter,
+ ifInDiscards
+ Counter,
+ ifInErrors
+ Counter,
+ ifInUnknownProtos
+ Counter,
+ ifOutOctets
+ Counter,
+ ifOutUcastPkts
+ Counter,
+ ifOutNUcastPkts
+ Counter,
+ ifOutDiscards
+ Counter,
+ ifOutErrors
+ Counter,
+ ifOutQLen
+ Gauge,
+ ifSpecific
+ OBJECT IDENTIFIER
+ }
+
+ ifIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+
+
+
+
+
+ DESCRIPTION
+ "A unique value for each interface. Its value
+ ranges between 1 and the value of ifNumber. The
+ value for each interface must remain constant at
+ least from one re-initialization of the entity's
+ network management system to the next re-
+ initialization."
+ ::= { ifEntry 1 }
+
+ ifDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A textual string containing information about the
+ interface. This string should include the name of
+ the manufacturer, the product name and the version
+ of the hardware interface."
+ ::= { ifEntry 2 }
+
+ ifType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ regular1822(2),
+ hdh1822(3),
+ ddn-x25(4),
+ rfc877-x25(5),
+ ethernet-csmacd(6),
+ iso88023-csmacd(7),
+ iso88024-tokenBus(8),
+ iso88025-tokenRing(9),
+ iso88026-man(10),
+ starLan(11),
+ proteon-10Mbit(12),
+ proteon-80Mbit(13),
+ hyperchannel(14),
+ fddi(15),
+ lapb(16),
+ sdlc(17),
+ ds1(18), -- T-1
+ e1(19), -- european equiv. of T-1
+ basicISDN(20),
+ primaryISDN(21), -- proprietary serial
+ propPointToPointSerial(22),
+ ppp(23),
+ softwareLoopback(24),
+ eon(25), -- CLNP over IP [11]
+ ethernet-3Mbit(26),
+
+
+
+
+
+ nsip(27), -- XNS over IP
+ slip(28), -- generic SLIP
+ ultra(29), -- ULTRA technologies
+ ds3(30), -- T-3
+ sip(31), -- SMDS
+ frame-relay(32)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The type of interface, distinguished according to
+ the physical/link protocol(s) immediately `below'
+ the network layer in the protocol stack."
+ ::= { ifEntry 3 }
+
+ ifMtu OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The size of the largest datagram which can be
+ sent/received on the interface, specified in
+ octets. For interfaces that are used for
+ transmitting network datagrams, this is the size
+ of the largest network datagram that can be sent
+ on the interface."
+ ::= { ifEntry 4 }
+
+ ifSpeed OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An estimate of the interface's current bandwidth
+ in bits per second. For interfaces which do not
+ vary in bandwidth or for those where no accurate
+ estimation can be made, this object should contain
+ the nominal bandwidth."
+ ::= { ifEntry 5 }
+
+ ifPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The interface's address at the protocol layer
+ immediately `below' the network layer in the
+ protocol stack. For interfaces which do not have
+
+
+
+
+
+ such an address (e.g., a serial line), this object
+ should contain an octet string of zero length."
+ ::= { ifEntry 6 }
+
+ ifAdminStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1), -- ready to pass packets
+ down(2),
+ testing(3) -- in some test mode
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The desired state of the interface. The
+ testing(3) state indicates that no operational
+ packets can be passed."
+ ::= { ifEntry 7 }
+
+ ifOperStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ up(1), -- ready to pass packets
+ down(2),
+ testing(3) -- in some test mode
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current operational state of the interface.
+ The testing(3) state indicates that no operational
+ packets can be passed."
+ ::= { ifEntry 8 }
+
+ ifLastChange OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The value of sysUpTime at the time the interface
+ entered its current operational state. If the
+ current state was entered prior to the last re-
+ initialization of the local network management
+ subsystem, then this object contains a zero
+ value."
+ ::= { ifEntry 9 }
+
+ ifInOctets OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+
+
+
+
+
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of octets received on the
+ interface, including framing characters."
+ ::= { ifEntry 10 }
+
+ ifInUcastPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of subnetwork-unicast packets
+ delivered to a higher-layer protocol."
+ ::= { ifEntry 11 }
+
+ ifInNUcastPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of non-unicast (i.e., subnetwork-
+ broadcast or subnetwork-multicast) packets
+ delivered to a higher-layer protocol."
+ ::= { ifEntry 12 }
+
+ ifInDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of inbound packets which were chosen
+ to be discarded even though no errors had been
+ detected to prevent their being deliverable to a
+ higher-layer protocol. One possible reason for
+ discarding such a packet could be to free up
+ buffer space."
+ ::= { ifEntry 13 }
+
+ ifInErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of inbound packets that contained
+ errors preventing them from being deliverable to a
+ higher-layer protocol."
+ ::= { ifEntry 14 }
+
+
+
+
+
+
+ ifInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of packets received via the interface
+ which were discarded because of an unknown or
+ unsupported protocol."
+ ::= { ifEntry 15 }
+
+ ifOutOctets OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of octets transmitted out of the
+ interface, including framing characters."
+ ::= { ifEntry 16 }
+
+ ifOutUcastPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of packets that higher-level
+ protocols requested be transmitted to a
+ subnetwork-unicast address, including those that
+ were discarded or not sent."
+ ::= { ifEntry 17 }
+
+ ifOutNUcastPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of packets that higher-level
+ protocols requested be transmitted to a non-
+ unicast (i.e., a subnetwork-broadcast or
+ subnetwork-multicast) address, including those
+ that were discarded or not sent."
+ ::= { ifEntry 18 }
+
+ ifOutDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outbound packets which were chosen
+
+
+
+
+
+ to be discarded even though no errors had been
+ detected to prevent their being transmitted. One
+ possible reason for discarding such a packet could
+ be to free up buffer space."
+ ::= { ifEntry 19 }
+
+ ifOutErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outbound packets that could not be
+ transmitted because of errors."
+ ::= { ifEntry 20 }
+
+ ifOutQLen OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The length of the output packet queue (in
+ packets)."
+ ::= { ifEntry 21 }
+
+ ifSpecific OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A reference to MIB definitions specific to the
+ particular media being used to realize the
+ interface. For example, if the interface is
+ realized by an ethernet, then the value of this
+ object refers to a document defining objects
+ specific to ethernet. If this information is not
+ present, its value should be set to the OBJECT
+ IDENTIFIER { 0 0 }, which is a syntatically valid
+ object identifier, and any conformant
+ implementation of ASN.1 and BER must be able to
+ generate and recognize this value."
+ ::= { ifEntry 22 }
+
+
+ -- the Address Translation group
+
+ -- Implementation of the Address Translation group is
+ -- mandatory for all systems. Note however that this group
+ -- is deprecated by MIB-II. That is, it is being included
+
+
+
+
+
+ -- solely for compatibility with MIB-I nodes, and will most
+ -- likely be excluded from MIB-III nodes. From MIB-II and
+ -- onwards, each network protocol group contains its own
+ -- address translation tables.
+
+ -- The Address Translation group contains one table which is
+ -- the union across all interfaces of the translation tables
+ -- for converting a NetworkAddress (e.g., an IP address) into
+ -- a subnetwork-specific address. For lack of a better term,
+ -- this document refers to such a subnetwork-specific address
+ -- as a `physical' address.
+
+ -- Examples of such translation tables are: for broadcast
+ -- media where ARP is in use, the translation table is
+ -- equivalent to the ARP cache; or, on an X.25 network where
+ -- non-algorithmic translation to X.121 addresses is
+ -- required, the translation table contains the
+ -- NetworkAddress to X.121 address equivalences.
+
+ atTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AtEntry
+ ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "The Address Translation tables contain the
+ NetworkAddress to `physical' address equivalences.
+ Some interfaces do not use translation tables for
+ determining address equivalences (e.g., DDN-X.25
+ has an algorithmic method); if all interfaces are
+ of this type, then the Address Translation table
+ is empty, i.e., has zero entries."
+ ::= { at 1 }
+
+ atEntry OBJECT-TYPE
+ SYNTAX AtEntry
+ ACCESS not-accessible
+ STATUS deprecated
+ DESCRIPTION
+ "Each entry contains one NetworkAddress to
+ `physical' address equivalence."
+ INDEX { atIfIndex,
+ atNetAddress }
+ ::= { atTable 1 }
+
+ AtEntry ::=
+ SEQUENCE {
+ atIfIndex
+ INTEGER,
+
+
+
+
+
+ atPhysAddress
+ PhysAddress,
+ atNetAddress
+ NetworkAddress
+ }
+
+ atIfIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "The interface on which this entry's equivalence
+ is effective. The interface identified by a
+ particular value of this index is the same
+ interface as identified by the same value of
+ ifIndex."
+ ::= { atEntry 1 }
+
+ atPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "The media-dependent `physical' address.
+
+ Setting this object to a null string (one of zero
+ length) has the effect of invaliding the
+ corresponding entry in the atTable object. That
+ is, it effectively dissasociates the interface
+ identified with said entry from the mapping
+ identified with said entry. It is an
+ implementation-specific matter as to whether the
+ agent removes an invalidated entry from the table.
+ Accordingly, management stations must be prepared
+ to receive tabular information from agents that
+ corresponds to entries not currently in use.
+ Proper interpretation of such entries requires
+ examination of the relevant atPhysAddress object."
+ ::= { atEntry 2 }
+
+ atNetAddress OBJECT-TYPE
+ SYNTAX NetworkAddress
+ ACCESS read-write
+ STATUS deprecated
+ DESCRIPTION
+ "The NetworkAddress (e.g., the IP address)
+ corresponding to the media-dependent `physical'
+ address."
+
+
+
+
+
+ ::= { atEntry 3 }
+
+
+ -- the IP group
+
+ -- Implementation of the IP group is mandatory for all
+ -- systems.
+
+ ipForwarding OBJECT-TYPE
+ SYNTAX INTEGER {
+ forwarding(1), -- acting as a gateway
+ not-forwarding(2) -- NOT acting as a gateway
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The indication of whether this entity is acting
+ as an IP gateway in respect to the forwarding of
+ datagrams received by, but not addressed to, this
+ entity. IP gateways forward datagrams. IP hosts
+ do not (except those source-routed via the host).
+
+ Note that for some managed nodes, this object may
+ take on only a subset of the values possible.
+ Accordingly, it is appropriate for an agent to
+ return a `badValue' response if a management
+ station attempts to change this object to an
+ inappropriate value."
+ ::= { ip 1 }
+
+ ipDefaultTTL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The default value inserted into the Time-To-Live
+ field of the IP header of datagrams originated at
+ this entity, whenever a TTL value is not supplied
+ by the transport layer protocol."
+ ::= { ip 2 }
+
+ ipInReceives OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of input datagrams received from
+ interfaces, including those received in error."
+
+
+
+
+
+ ::= { ip 3 }
+
+ ipInHdrErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input datagrams discarded due to
+ errors in their IP headers, including bad
+ checksums, version number mismatch, other format
+ errors, time-to-live exceeded, errors discovered
+ in processing their IP options, etc."
+ ::= { ip 4 }
+
+ ipInAddrErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input datagrams discarded because
+ the IP address in their IP header's destination
+ field was not a valid address to be received at
+ this entity. This count includes invalid
+ addresses (e.g., 0.0.0.0) and addresses of
+ unsupported Classes (e.g., Class E). For entities
+ which are not IP Gateways and therefore do not
+ forward datagrams, this counter includes datagrams
+ discarded because the destination address was not
+ a local address."
+ ::= { ip 5 }
+
+ ipForwDatagrams OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input datagrams for which this
+ entity was not their final IP destination, as a
+ result of which an attempt was made to find a
+ route to forward them to that final destination.
+ In entities which do not act as IP Gateways, this
+ counter will include only those packets which were
+ Source-Routed via this entity, and the Source-
+ Route option processing was successful."
+ ::= { ip 6 }
+
+ ipInUnknownProtos OBJECT-TYPE
+ SYNTAX Counter
+
+
+
+
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of locally-addressed datagrams
+ received successfully but discarded because of an
+ unknown or unsupported protocol."
+ ::= { ip 7 }
+
+ ipInDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input IP datagrams for which no
+ problems were encountered to prevent their
+ continued processing, but which were discarded
+ (e.g., for lack of buffer space). Note that this
+ counter does not include any datagrams discarded
+ while awaiting re-assembly."
+ ::= { ip 8 }
+
+ ipInDelivers OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of input datagrams successfully
+ delivered to IP user-protocols (including ICMP)."
+ ::= { ip 9 }
+
+ ipOutRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of IP datagrams which local IP
+ user-protocols (including ICMP) supplied to IP in
+ requests for transmission. Note that this counter
+ does not include any datagrams counted in
+ ipForwDatagrams."
+ ::= { ip 10 }
+
+ ipOutDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output IP datagrams for which no
+
+
+
+
+
+ problem was encountered to prevent their
+ transmission to their destination, but which were
+ discarded (e.g., for lack of buffer space). Note
+ that this counter would include datagrams counted
+ in ipForwDatagrams if any such packets met this
+ (discretionary) discard criterion."
+ ::= { ip 11 }
+
+ ipOutNoRoutes OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagrams discarded because no
+ route could be found to transmit them to their
+ destination. Note that this counter includes any
+ packets counted in ipForwDatagrams which meet this
+ `no-route' criterion. Note that this includes any
+ datagarms which a host cannot route because all of
+ its default gateways are down."
+ ::= { ip 12 }
+
+ ipReasmTimeout OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum number of seconds which received
+ fragments are held while they are awaiting
+ reassembly at this entity."
+ ::= { ip 13 }
+
+ ipReasmReqds OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP fragments received which needed
+ to be reassembled at this entity."
+ ::= { ip 14 }
+
+ ipReasmOKs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagrams successfully re-
+ assembled."
+
+
+
+
+
+ ::= { ip 15 }
+
+ ipReasmFails OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of failures detected by the IP re-
+ assembly algorithm (for whatever reason: timed
+ out, errors, etc). Note that this is not
+ necessarily a count of discarded IP fragments
+ since some algorithms (notably the algorithm in
+ RFC 815) can lose track of the number of fragments
+ by combining them as they are received."
+ ::= { ip 16 }
+
+ ipFragOKs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagrams that have been
+ successfully fragmented at this entity."
+ ::= { ip 17 }
+
+ ipFragFails OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagrams that have been
+ discarded because they needed to be fragmented at
+ this entity but could not be, e.g., because their
+ Don't Fragment flag was set."
+ ::= { ip 18 }
+
+ ipFragCreates OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of IP datagram fragments that have
+ been generated as a result of fragmentation at
+ this entity."
+ ::= { ip 19 }
+
+
+
+
+
+
+
+
+ -- the IP address table
+
+ -- The IP address table contains this entity's IP addressing
+ -- information.
+
+ ipAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpAddrEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The table of addressing information relevant to
+ this entity's IP addresses."
+ ::= { ip 20 }
+
+ ipAddrEntry OBJECT-TYPE
+ SYNTAX IpAddrEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The addressing information for one of this
+ entity's IP addresses."
+ INDEX { ipAdEntAddr }
+ ::= { ipAddrTable 1 }
+
+ IpAddrEntry ::=
+ SEQUENCE {
+ ipAdEntAddr
+ IpAddress,
+ ipAdEntIfIndex
+ INTEGER,
+ ipAdEntNetMask
+ IpAddress,
+ ipAdEntBcastAddr
+ INTEGER,
+ ipAdEntReasmMaxSize
+ INTEGER (0..65535)
+ }
+
+ ipAdEntAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address to which this entry's addressing
+ information pertains."
+ ::= { ipAddrEntry 1 }
+
+
+
+
+
+
+
+ ipAdEntIfIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index value which uniquely identifies the
+ interface to which this entry is applicable. The
+ interface identified by a particular value of this
+ index is the same interface as identified by the
+ same value of ifIndex."
+ ::= { ipAddrEntry 2 }
+
+ ipAdEntNetMask OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The subnet mask associated with the IP address of
+ this entry. The value of the mask is an IP
+ address with all the network bits set to 1 and all
+ the hosts bits set to 0."
+ ::= { ipAddrEntry 3 }
+
+ ipAdEntBcastAddr OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The value of the least-significant bit in the IP
+ broadcast address used for sending datagrams on
+ the (logical) interface associated with the IP
+ address of this entry. For example, when the
+ Internet standard all-ones broadcast address is
+ used, the value will be 1. This value applies to
+ both the subnet and network broadcasts addresses
+ used by the entity on this (logical) interface."
+ ::= { ipAddrEntry 4 }
+
+ ipAdEntReasmMaxSize OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The size of the largest IP datagram which this
+ entity can re-assemble from incoming IP fragmented
+ datagrams received on this interface."
+ ::= { ipAddrEntry 5 }
+
+
+
+
+
+
+ -- the IP routing table
+
+ -- The IP routing table contains an entry for each route
+ -- presently known to this entity.
+
+ ipRouteTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpRouteEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "This entity's IP Routing table."
+ ::= { ip 21 }
+
+ ipRouteEntry OBJECT-TYPE
+ SYNTAX IpRouteEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A route to a particular destination."
+ INDEX { ipRouteDest }
+ ::= { ipRouteTable 1 }
+
+ IpRouteEntry ::=
+ SEQUENCE {
+ ipRouteDest
+ IpAddress,
+ ipRouteIfIndex
+ INTEGER,
+ ipRouteMetric1
+ INTEGER,
+ ipRouteMetric2
+ INTEGER,
+ ipRouteMetric3
+ INTEGER,
+ ipRouteMetric4
+ INTEGER,
+ ipRouteNextHop
+ IpAddress,
+ ipRouteType
+ INTEGER,
+ ipRouteProto
+ INTEGER,
+ ipRouteAge
+ INTEGER,
+ ipRouteMask
+ IpAddress,
+ ipRouteMetric5
+ INTEGER,
+
+
+
+
+
+ ipRouteInfo
+ OBJECT IDENTIFIER
+ }
+
+ ipRouteDest OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The destination IP address of this route. An
+ entry with a value of 0.0.0.0 is considered a
+ default route. Multiple routes to a single
+ destination can appear in the table, but access to
+ such multiple entries is dependent on the table-
+ access mechanisms defined by the network
+ management protocol in use."
+ ::= { ipRouteEntry 1 }
+
+ ipRouteIfIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The index value which uniquely identifies the
+ local interface through which the next hop of this
+ route should be reached. The interface identified
+ by a particular value of this index is the same
+ interface as identified by the same value of
+ ifIndex."
+ ::= { ipRouteEntry 2 }
+
+ ipRouteMetric1 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The primary routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 3 }
+
+ ipRouteMetric2 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+
+
+
+
+
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 4 }
+
+ ipRouteMetric3 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 5 }
+
+ ipRouteMetric4 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 6 }
+
+ ipRouteNextHop OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address of the next hop of this route.
+ (In the case of a route bound to an interface
+ which is realized via a broadcast media, the value
+ of this field is the agent's IP address on that
+ interface.)"
+ ::= { ipRouteEntry 7 }
+
+ ipRouteType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+
+ invalid(2), -- an invalidated route
+
+
+
+
+
+ -- route to directly
+ direct(3), -- connected (sub-)network
+
+ -- route to a non-local
+ indirect(4) -- host/network/sub-network
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The type of route. Note that the values
+ direct(3) and indirect(4) refer to the notion of
+ direct and indirect routing in the IP
+ architecture.
+
+ Setting this object to the value invalid(2) has
+ the effect of invalidating the corresponding entry
+ in the ipRouteTable object. That is, it
+ effectively dissasociates the destination
+ identified with said entry from the route
+ identified with said entry. It is an
+ implementation-specific matter as to whether the
+ agent removes an invalidated entry from the table.
+ Accordingly, management stations must be prepared
+ to receive tabular information from agents that
+ corresponds to entries not currently in use.
+ Proper interpretation of such entries requires
+ examination of the relevant ipRouteType object."
+ ::= { ipRouteEntry 8 }
+
+ ipRouteProto OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+
+ -- non-protocol information,
+ -- e.g., manually configured
+ local(2), -- entries
+
+ -- set via a network
+ netmgmt(3), -- management protocol
+
+ -- obtained via ICMP,
+ icmp(4), -- e.g., Redirect
+
+ -- the remaining values are
+ -- all gateway routing
+ -- protocols
+ egp(5),
+ ggp(6),
+
+
+
+
+
+ hello(7),
+ rip(8),
+ is-is(9),
+ es-is(10),
+ ciscoIgrp(11),
+ bbnSpfIgp(12),
+ ospf(13),
+ bgp(14)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The routing mechanism via which this route was
+ learned. Inclusion of values for gateway routing
+ protocols is not intended to imply that hosts
+ should support those protocols."
+ ::= { ipRouteEntry 9 }
+
+ ipRouteAge OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The number of seconds since this route was last
+ updated or otherwise determined to be correct.
+ Note that no semantics of `too old' can be implied
+ except through knowledge of the routing protocol
+ by which the route was learned."
+ ::= { ipRouteEntry 10 }
+
+ ipRouteMask OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicate the mask to be logical-ANDed with the
+ destination address before being compared to the
+ value in the ipRouteDest field. For those systems
+ that do not support arbitrary subnet masks, an
+ agent constructs the value of the ipRouteMask by
+ determining whether the value of the correspondent
+ ipRouteDest field belong to a class-A, B, or C
+ network, and then using one of:
+
+ mask network
+ 255.0.0.0 class-A
+ 255.255.0.0 class-B
+ 255.255.255.0 class-C
+
+
+
+
+
+ If the value of the ipRouteDest is 0.0.0.0 (a
+ default route), then the mask value is also
+ 0.0.0.0. It should be noted that all IP routing
+ subsystems implicitly use this mechanism."
+ ::= { ipRouteEntry 11 }
+
+ ipRouteMetric5 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An alternate routing metric for this route. The
+ semantics of this metric are determined by the
+ routing-protocol specified in the route's
+ ipRouteProto value. If this metric is not used,
+ its value should be set to -1."
+ ::= { ipRouteEntry 12 }
+
+ ipRouteInfo OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A reference to MIB definitions specific to the
+ particular routing protocol which is responsible
+ for this route, as determined by the value
+ specified in the route's ipRouteProto value. If
+ this information is not present, its value should
+ be set to the OBJECT IDENTIFIER { 0 0 }, which is
+ a syntatically valid object identifier, and any
+ conformant implementation of ASN.1 and BER must be
+ able to generate and recognize this value."
+ ::= { ipRouteEntry 13 }
+
+
+ -- the IP Address Translation table
+
+ -- The IP address translation table contain the IpAddress to
+ -- `physical' address equivalences. Some interfaces do not
+ -- use translation tables for determining address
+ -- equivalences (e.g., DDN-X.25 has an algorithmic method);
+ -- if all interfaces are of this type, then the Address
+ -- Translation table is empty, i.e., has zero entries.
+
+ ipNetToMediaTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IpNetToMediaEntry
+ ACCESS not-accessible
+ STATUS mandatory
+
+
+
+
+
+ DESCRIPTION
+ "The IP Address Translation table used for mapping
+ from IP addresses to physical addresses."
+ ::= { ip 22 }
+
+ ipNetToMediaEntry OBJECT-TYPE
+ SYNTAX IpNetToMediaEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Each entry contains one IpAddress to `physical'
+ address equivalence."
+ INDEX { ipNetToMediaIfIndex,
+ ipNetToMediaNetAddress }
+ ::= { ipNetToMediaTable 1 }
+
+ IpNetToMediaEntry ::=
+ SEQUENCE {
+ ipNetToMediaIfIndex
+ INTEGER,
+ ipNetToMediaPhysAddress
+ PhysAddress,
+ ipNetToMediaNetAddress
+ IpAddress,
+ ipNetToMediaType
+ INTEGER
+ }
+
+ ipNetToMediaIfIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The interface on which this entry's equivalence
+ is effective. The interface identified by a
+ particular value of this index is the same
+ interface as identified by the same value of
+ ifIndex."
+ ::= { ipNetToMediaEntry 1 }
+
+ ipNetToMediaPhysAddress OBJECT-TYPE
+ SYNTAX PhysAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The media-dependent `physical' address."
+ ::= { ipNetToMediaEntry 2 }
+
+
+
+
+
+
+ ipNetToMediaNetAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The IpAddress corresponding to the media-
+ dependent `physical' address."
+ ::= { ipNetToMediaEntry 3 }
+
+ ipNetToMediaType OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+ invalid(2), -- an invalidated mapping
+ dynamic(3),
+ static(4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The type of mapping.
+
+ Setting this object to the value invalid(2) has
+ the effect of invalidating the corresponding entry
+ in the ipNetToMediaTable. That is, it effectively
+ dissasociates the interface identified with said
+ entry from the mapping identified with said entry.
+ It is an implementation-specific matter as to
+ whether the agent removes an invalidated entry
+ from the table. Accordingly, management stations
+ must be prepared to receive tabular information
+ from agents that corresponds to entries not
+ currently in use. Proper interpretation of such
+ entries requires examination of the relevant
+ ipNetToMediaType object."
+ ::= { ipNetToMediaEntry 4 }
+
+
+ -- additional IP objects
+
+ ipRoutingDiscards OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of routing entries which were chosen
+ to be discarded even though they are valid. One
+ possible reason for discarding such an entry could
+ be to free-up buffer space for other routing
+
+
+
+
+
+ entries."
+ ::= { ip 23 }
+
+
+ -- the ICMP group
+
+ -- Implementation of the ICMP group is mandatory for all
+ -- systems.
+
+ icmpInMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of ICMP messages which the
+ entity received. Note that this counter includes
+ all those counted by icmpInErrors."
+ ::= { icmp 1 }
+
+ icmpInErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP messages which the entity
+ received but determined as having ICMP-specific
+ errors (bad ICMP checksums, bad length, etc.)."
+ ::= { icmp 2 }
+
+ icmpInDestUnreachs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Destination Unreachable
+ messages received."
+ ::= { icmp 3 }
+
+ icmpInTimeExcds OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Time Exceeded messages
+ received."
+ ::= { icmp 4 }
+
+
+
+
+
+
+
+ icmpInParmProbs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Parameter Problem messages
+ received."
+ ::= { icmp 5 }
+
+ icmpInSrcQuenchs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Source Quench messages
+ received."
+ ::= { icmp 6 }
+
+ icmpInRedirects OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Redirect messages received."
+ ::= { icmp 7 }
+
+ icmpInEchos OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Echo (request) messages
+ received."
+ ::= { icmp 8 }
+
+ icmpInEchoReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Echo Reply messages received."
+ ::= { icmp 9 }
+
+ icmpInTimestamps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+
+
+
+
+
+ "The number of ICMP Timestamp (request) messages
+ received."
+ ::= { icmp 10 }
+
+ icmpInTimestampReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Timestamp Reply messages
+ received."
+ ::= { icmp 11 }
+
+ icmpInAddrMasks OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Address Mask Request messages
+ received."
+ ::= { icmp 12 }
+
+ icmpInAddrMaskReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Address Mask Reply messages
+ received."
+ ::= { icmp 13 }
+
+ icmpOutMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of ICMP messages which this
+ entity attempted to send. Note that this counter
+ includes all those counted by icmpOutErrors."
+ ::= { icmp 14 }
+
+ icmpOutErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP messages which this entity did
+ not send due to problems discovered within ICMP
+
+
+
+
+
+ such as a lack of buffers. This value should not
+ include errors discovered outside the ICMP layer
+ such as the inability of IP to route the resultant
+ datagram. In some implementations there may be no
+ types of error which contribute to this counter's
+ value."
+ ::= { icmp 15 }
+
+ icmpOutDestUnreachs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Destination Unreachable
+ messages sent."
+ ::= { icmp 16 }
+
+ icmpOutTimeExcds OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Time Exceeded messages sent."
+ ::= { icmp 17 }
+
+ icmpOutParmProbs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Parameter Problem messages
+ sent."
+ ::= { icmp 18 }
+
+ icmpOutSrcQuenchs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Source Quench messages sent."
+ ::= { icmp 19 }
+
+ icmpOutRedirects OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Redirect messages sent. For a
+
+
+
+
+
+ host, this object will always be zero, since hosts
+ do not send redirects."
+ ::= { icmp 20 }
+
+ icmpOutEchos OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Echo (request) messages sent."
+ ::= { icmp 21 }
+
+ icmpOutEchoReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Echo Reply messages sent."
+ ::= { icmp 22 }
+
+ icmpOutTimestamps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Timestamp (request) messages
+ sent."
+ ::= { icmp 23 }
+
+ icmpOutTimestampReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Timestamp Reply messages
+ sent."
+ ::= { icmp 24 }
+
+ icmpOutAddrMasks OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Address Mask Request messages
+ sent."
+ ::= { icmp 25 }
+
+
+
+
+
+
+
+ icmpOutAddrMaskReps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of ICMP Address Mask Reply messages
+ sent."
+ ::= { icmp 26 }
+
+
+ -- the TCP group
+
+ -- Implementation of the TCP group is mandatory for all
+ -- systems that implement the TCP.
+
+ -- Note that instances of object types that represent
+ -- information about a particular TCP connection are
+ -- transient; they persist only as long as the connection
+ -- in question.
+
+ tcpRtoAlgorithm OBJECT-TYPE
+ SYNTAX INTEGER {
+ other(1), -- none of the following
+
+ constant(2), -- a constant rto
+ rsre(3), -- MIL-STD-1778, Appendix B
+ vanj(4) -- Van Jacobson's algorithm [10]
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The algorithm used to determine the timeout value
+ used for retransmitting unacknowledged octets."
+ ::= { tcp 1 }
+
+ tcpRtoMin OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum value permitted by a TCP
+ implementation for the retransmission timeout,
+ measured in milliseconds. More refined semantics
+ for objects of this type depend upon the algorithm
+ used to determine the retransmission timeout. In
+ particular, when the timeout algorithm is rsre(3),
+ an object of this type has the semantics of the
+ LBOUND quantity described in RFC 793."
+
+
+
+
+
+ ::= { tcp 2 }
+
+
+ tcpRtoMax OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum value permitted by a TCP
+ implementation for the retransmission timeout,
+ measured in milliseconds. More refined semantics
+ for objects of this type depend upon the algorithm
+ used to determine the retransmission timeout. In
+ particular, when the timeout algorithm is rsre(3),
+ an object of this type has the semantics of the
+ UBOUND quantity described in RFC 793."
+ ::= { tcp 3 }
+
+ tcpMaxConn OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The limit on the total number of TCP connections
+ the entity can support. In entities where the
+ maximum number of connections is dynamic, this
+ object should contain the value -1."
+ ::= { tcp 4 }
+
+ tcpActiveOpens OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of times TCP connections have made a
+ direct transition to the SYN-SENT state from the
+ CLOSED state."
+ ::= { tcp 5 }
+
+ tcpPassiveOpens OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of times TCP connections have made a
+ direct transition to the SYN-RCVD state from the
+ LISTEN state."
+ ::= { tcp 6 }
+
+
+
+
+
+ tcpAttemptFails OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of times TCP connections have made a
+ direct transition to the CLOSED state from either
+ the SYN-SENT state or the SYN-RCVD state, plus the
+ number of times TCP connections have made a direct
+ transition to the LISTEN state from the SYN-RCVD
+ state."
+ ::= { tcp 7 }
+
+ tcpEstabResets OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of times TCP connections have made a
+ direct transition to the CLOSED state from either
+ the ESTABLISHED state or the CLOSE-WAIT state."
+ ::= { tcp 8 }
+
+ tcpCurrEstab OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of TCP connections for which the
+ current state is either ESTABLISHED or CLOSE-
+ WAIT."
+ ::= { tcp 9 }
+
+ tcpInSegs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of segments received, including
+ those received in error. This count includes
+ segments received on currently established
+ connections."
+ ::= { tcp 10 }
+
+ tcpOutSegs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+
+
+
+
+
+ DESCRIPTION
+ "The total number of segments sent, including
+ those on current connections but excluding those
+ containing only retransmitted octets."
+ ::= { tcp 11 }
+
+ tcpRetransSegs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of segments retransmitted - that
+ is, the number of TCP segments transmitted
+ containing one or more previously transmitted
+ octets."
+ ::= { tcp 12 }
+
+
+ -- the TCP Connection table
+
+ -- The TCP connection table contains information about this
+ -- entity's existing TCP connections.
+
+ tcpConnTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF TcpConnEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A table containing TCP connection-specific
+ information."
+ ::= { tcp 13 }
+
+ tcpConnEntry OBJECT-TYPE
+ SYNTAX TcpConnEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Information about a particular current TCP
+ connection. An object of this type is transient,
+ in that it ceases to exist when (or soon after)
+ the connection makes the transition to the CLOSED
+ state."
+ INDEX { tcpConnLocalAddress,
+ tcpConnLocalPort,
+ tcpConnRemAddress,
+ tcpConnRemPort }
+ ::= { tcpConnTable 1 }
+
+
+
+
+
+
+ TcpConnEntry ::=
+ SEQUENCE {
+ tcpConnState
+ INTEGER,
+ tcpConnLocalAddress
+ IpAddress,
+ tcpConnLocalPort
+ INTEGER (0..65535),
+ tcpConnRemAddress
+ IpAddress,
+ tcpConnRemPort
+ INTEGER (0..65535)
+ }
+
+ tcpConnState OBJECT-TYPE
+ SYNTAX INTEGER {
+ closed(1),
+ listen(2),
+ synSent(3),
+ synReceived(4),
+ established(5),
+ finWait1(6),
+ finWait2(7),
+ closeWait(8),
+ lastAck(9),
+ closing(10),
+ timeWait(11),
+ deleteTCB(12)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The state of this TCP connection.
+
+ The only value which may be set by a management
+ station is deleteTCB(12). Accordingly, it is
+ appropriate for an agent to return a `badValue'
+ response if a management station attempts to set
+ this object to any other value.
+
+ If a management station sets this object to the
+ value deleteTCB(12), then this has the effect of
+ deleting the TCB (as defined in RFC 793) of the
+ corresponding connection on the managed node,
+ resulting in immediate termination of the
+ connection.
+
+ As an implementation-specific option, a RST
+
+
+
+
+
+ segment may be sent from the managed node to the
+ other TCP endpoint (note however that RST segments
+ are not sent reliably)."
+ ::= { tcpConnEntry 1 }
+
+ tcpConnLocalAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The local IP address for this TCP connection. In
+ the case of a connection in the listen state which
+ is willing to accept connections for any IP
+ interface associated with the node, the value
+ 0.0.0.0 is used."
+ ::= { tcpConnEntry 2 }
+
+ tcpConnLocalPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The local port number for this TCP connection."
+ ::= { tcpConnEntry 3 }
+
+ tcpConnRemAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The remote IP address for this TCP connection."
+ ::= { tcpConnEntry 4 }
+
+ tcpConnRemPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The remote port number for this TCP connection."
+ ::= { tcpConnEntry 5 }
+
+
+ -- additional TCP objects
+
+ tcpInErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+
+
+
+
+
+ DESCRIPTION
+ "The total number of segments received in error
+ (e.g., bad TCP checksums)."
+ ::= { tcp 14 }
+
+ tcpOutRsts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of TCP segments sent containing the
+ RST flag."
+ ::= { tcp 15 }
+
+
+ -- the UDP group
+
+ -- Implementation of the UDP group is mandatory for all
+ -- systems which implement the UDP.
+
+ udpInDatagrams OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of UDP datagrams delivered to
+ UDP users."
+ ::= { udp 1 }
+
+ udpNoPorts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of received UDP datagrams for
+ which there was no application at the destination
+ port."
+ ::= { udp 2 }
+
+ udpInErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of received UDP datagrams that could
+ not be delivered for reasons other than the lack
+ of an application at the destination port."
+ ::= { udp 3 }
+
+
+
+
+
+ udpOutDatagrams OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of UDP datagrams sent from this
+ entity."
+ ::= { udp 4 }
+
+
+ -- the UDP Listener table
+
+ -- The UDP listener table contains information about this
+ -- entity's UDP end-points on which a local application is
+ -- currently accepting datagrams.
+
+ udpTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UdpEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A table containing UDP listener information."
+ ::= { udp 5 }
+
+ udpEntry OBJECT-TYPE
+ SYNTAX UdpEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Information about a particular current UDP
+ listener."
+ INDEX { udpLocalAddress, udpLocalPort }
+ ::= { udpTable 1 }
+
+ UdpEntry ::=
+ SEQUENCE {
+ udpLocalAddress
+ IpAddress,
+ udpLocalPort
+ INTEGER (0..65535)
+ }
+
+ udpLocalAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The local IP address for this UDP listener. In
+
+
+
+
+
+ the case of a UDP listener which is willing to
+ accept datagrams for any IP interface associated
+ with the node, the value 0.0.0.0 is used."
+ ::= { udpEntry 1 }
+
+ udpLocalPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The local port number for this UDP listener."
+ ::= { udpEntry 2 }
+
+
+ -- the EGP group
+
+ -- Implementation of the EGP group is mandatory for all
+ -- systems which implement the EGP.
+
+ egpInMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP messages received without
+ error."
+ ::= { egp 1 }
+
+ egpInErrors OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP messages received that proved
+ to be in error."
+ ::= { egp 2 }
+
+ egpOutMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of locally generated EGP
+ messages."
+ ::= { egp 3 }
+
+ egpOutErrors OBJECT-TYPE
+ SYNTAX Counter
+
+
+
+
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of locally generated EGP messages not
+ sent due to resource limitations within an EGP
+ entity."
+ ::= { egp 4 }
+
+
+ -- the EGP Neighbor table
+
+ -- The EGP neighbor table contains information about this
+ -- entity's EGP neighbors.
+
+ egpNeighTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EgpNeighEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The EGP neighbor table."
+ ::= { egp 5 }
+
+ egpNeighEntry OBJECT-TYPE
+ SYNTAX EgpNeighEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Information about this entity's relationship with
+ a particular EGP neighbor."
+ INDEX { egpNeighAddr }
+ ::= { egpNeighTable 1 }
+
+ EgpNeighEntry ::=
+ SEQUENCE {
+ egpNeighState
+ INTEGER,
+ egpNeighAddr
+ IpAddress,
+ egpNeighAs
+ INTEGER,
+ egpNeighInMsgs
+ Counter,
+ egpNeighInErrs
+ Counter,
+ egpNeighOutMsgs
+ Counter,
+ egpNeighOutErrs
+ Counter,
+
+
+
+
+
+ egpNeighInErrMsgs
+ Counter,
+ egpNeighOutErrMsgs
+ Counter,
+ egpNeighStateUps
+ Counter,
+ egpNeighStateDowns
+ Counter,
+ egpNeighIntervalHello
+ INTEGER,
+ egpNeighIntervalPoll
+ INTEGER,
+ egpNeighMode
+ INTEGER,
+ egpNeighEventTrigger
+ INTEGER
+ }
+
+ egpNeighState OBJECT-TYPE
+ SYNTAX INTEGER {
+ idle(1),
+ acquisition(2),
+ down(3),
+ up(4),
+ cease(5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The EGP state of the local system with respect to
+ this entry's EGP neighbor. Each EGP state is
+ represented by a value that is one greater than
+ the numerical value associated with said state in
+ RFC 904."
+ ::= { egpNeighEntry 1 }
+
+ egpNeighAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address of this entry's EGP neighbor."
+ ::= { egpNeighEntry 2 }
+
+ egpNeighAs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+
+
+
+
+
+ DESCRIPTION
+ "The autonomous system of this EGP peer. Zero
+ should be specified if the autonomous system
+ number of the neighbor is not yet known."
+ ::= { egpNeighEntry 3 }
+
+ egpNeighInMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP messages received without error
+ from this EGP peer."
+ ::= { egpNeighEntry 4 }
+
+ egpNeighInErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP messages received from this EGP
+ peer that proved to be in error (e.g., bad EGP
+ checksum)."
+ ::= { egpNeighEntry 5 }
+
+ egpNeighOutMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of locally generated EGP messages to
+ this EGP peer."
+ ::= { egpNeighEntry 6 }
+
+ egpNeighOutErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of locally generated EGP messages not
+ sent to this EGP peer due to resource limitations
+ within an EGP entity."
+ ::= { egpNeighEntry 7 }
+
+ egpNeighInErrMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+
+
+
+
+
+ DESCRIPTION
+ "The number of EGP-defined error messages received
+ from this EGP peer."
+ ::= { egpNeighEntry 8 }
+
+ egpNeighOutErrMsgs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP-defined error messages sent to
+ this EGP peer."
+ ::= { egpNeighEntry 9 }
+
+ egpNeighStateUps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP state transitions to the UP
+ state with this EGP peer."
+ ::= { egpNeighEntry 10 }
+
+ egpNeighStateDowns OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of EGP state transitions from the UP
+ state to any other state with this EGP peer."
+ ::= { egpNeighEntry 11 }
+
+ egpNeighIntervalHello OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The interval between EGP Hello command
+ retransmissions (in hundredths of a second). This
+ represents the t1 timer as defined in RFC 904."
+ ::= { egpNeighEntry 12 }
+
+ egpNeighIntervalPoll OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The interval between EGP poll command
+
+
+
+
+
+ retransmissions (in hundredths of a second). This
+ represents the t3 timer as defined in RFC 904."
+ ::= { egpNeighEntry 13 }
+
+ egpNeighMode OBJECT-TYPE
+ SYNTAX INTEGER { active(1), passive(2) }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The polling mode of this EGP entity, either
+ passive or active."
+ ::= { egpNeighEntry 14 }
+
+ egpNeighEventTrigger OBJECT-TYPE
+ SYNTAX INTEGER { start(1), stop(2) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A control variable used to trigger operator-
+ initiated Start and Stop events. When read, this
+ variable always returns the most recent value that
+ egpNeighEventTrigger was set to. If it has not
+ been set since the last initialization of the
+ network management subsystem on the node, it
+ returns a value of `stop'.
+
+ When set, this variable causes a Start or Stop
+ event on the specified neighbor, as specified on
+ pages 8-10 of RFC 904. Briefly, a Start event
+ causes an Idle peer to begin neighbor acquisition
+ and a non-Idle peer to reinitiate neighbor
+ acquisition. A stop event causes a non-Idle peer
+ to return to the Idle state until a Start event
+ occurs, either via egpNeighEventTrigger or
+ otherwise."
+ ::= { egpNeighEntry 15 }
+
+
+ -- additional EGP objects
+
+ egpAs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The autonomous system number of this EGP entity."
+ ::= { egp 6 }
+
+
+
+
+
+
+ -- the Transmission group
+
+ -- Based on the transmission media underlying each interface
+ -- on a system, the corresponding portion of the Transmission
+ -- group is mandatory for that system.
+
+ -- When Internet-standard definitions for managing
+ -- transmission media are defined, the transmission group is
+ -- used to provide a prefix for the names of those objects.
+
+ -- Typically, such definitions reside in the experimental
+ -- portion of the MIB until they are "proven", then as a
+ -- part of the Internet standardization process, the
+ -- definitions are accordingly elevated and a new object
+ -- identifier, under the transmission group is defined. By
+ -- convention, the name assigned is:
+ --
+ -- type OBJECT IDENTIFIER ::= { transmission number }
+ --
+ -- where "type" is the symbolic value used for the media in
+ -- the ifType column of the ifTable object, and "number" is
+ -- the actual integer value corresponding to the symbol.
+
+
+ -- the SNMP group
+
+ -- Implementation of the SNMP group is mandatory for all
+ -- systems which support an SNMP protocol entity. Some of
+ -- the objects defined below will be zero-valued in those
+ -- SNMP implementations that are optimized to support only
+ -- those functions specific to either a management agent or
+ -- a management station. In particular, it should be
+ -- observed that the objects below refer to an SNMP entity,
+ -- and there may be several SNMP entities residing on a
+ -- managed node (e.g., if the node is hosting acting as
+ -- a management station).
+
+ snmpInPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of Messages delivered to the
+ SNMP entity from the transport service."
+ ::= { snmp 1 }
+
+ snmpOutPkts OBJECT-TYPE
+ SYNTAX Counter
+
+
+
+
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages which were
+ passed from the SNMP protocol entity to the
+ transport service."
+ ::= { snmp 2 }
+
+ snmpInBadVersions OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages which were
+ delivered to the SNMP protocol entity and were for
+ an unsupported SNMP version."
+ ::= { snmp 3 }
+
+ snmpInBadCommunityNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages delivered to
+ the SNMP protocol entity which used a SNMP
+ community name not known to said entity."
+ ::= { snmp 4 }
+
+ snmpInBadCommunityUses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages delivered to
+ the SNMP protocol entity which represented an SNMP
+ operation which was not allowed by the SNMP
+ community named in the Message."
+ ::= { snmp 5 }
+
+ snmpInASNParseErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of ASN.1 or BER errors
+ encountered by the SNMP protocol entity when
+ decoding received SNMP Messages."
+ ::= { snmp 6 }
+
+
+
+
+
+ -- { snmp 7 } is not used
+
+ snmpInTooBigs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `tooBig'."
+ ::= { snmp 8 }
+
+ snmpInNoSuchNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `noSuchName'."
+ ::= { snmp 9 }
+
+ snmpInBadValues OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `badValue'."
+ ::= { snmp 10 }
+
+ snmpInReadOnlys OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number valid SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `readOnly'. It should be noted that it is a
+ protocol error to generate an SNMP PDU which
+ contains the value `readOnly' in the error-status
+ field, as such this object is provided as a means
+ of detecting incorrect implementations of the
+
+
+
+
+
+ SNMP."
+ ::= { snmp 11 }
+
+ snmpInGenErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `genErr'."
+ ::= { snmp 12 }
+
+ snmpInTotalReqVars OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ retrieved successfully by the SNMP protocol entity
+ as the result of receiving valid SNMP Get-Request
+ and Get-Next PDUs."
+ ::= { snmp 13 }
+
+ snmpInTotalSetVars OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ altered successfully by the SNMP protocol entity
+ as the result of receiving valid SNMP Set-Request
+ PDUs."
+ ::= { snmp 14 }
+
+ snmpInGetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 15 }
+
+ snmpInGetNexts OBJECT-TYPE
+ SYNTAX Counter
+
+
+
+
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have
+ been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 16 }
+
+ snmpInSetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 17 }
+
+ snmpInGetResponses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 18 }
+
+ snmpInTraps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have
+ been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 19 }
+
+ snmpOutTooBigs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `tooBig.'"
+ ::= { snmp 20 }
+
+
+
+
+
+ snmpOutNoSuchNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status is
+ `noSuchName'."
+ ::= { snmp 21 }
+
+ snmpOutBadValues OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `badValue'."
+ ::= { snmp 22 }
+
+ -- { snmp 23 } is not used
+
+ snmpOutGenErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `genErr'."
+ ::= { snmp 24 }
+
+ snmpOutGetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 25 }
+
+ snmpOutGetNexts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+
+
+
+
+
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 26 }
+
+ snmpOutSetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 27 }
+
+ snmpOutGetResponses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 28 }
+
+ snmpOutTraps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 29 }
+
+ snmpEnableAuthenTraps OBJECT-TYPE
+ SYNTAX INTEGER { enabled(1), disabled(2) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether the SNMP agent process is
+ permitted to generate authentication-failure
+ traps. The value of this object overrides any
+ configuration information; as such, it provides a
+ means whereby all authentication-failure traps may
+ be disabled.
+
+ Note that it is strongly recommended that this
+ object be stored in non-volatile memory so that it
+ remains constant between re-initializations of the
+ network management system."
+
+
+
+
+
+ ::= { snmp 30 }
+
+ END
+
diff --git a/lib/snmp/mibs/SNMP-COMMUNITY-MIB.funcs b/lib/snmp/mibs/SNMP-COMMUNITY-MIB.funcs
new file mode 100644
index 0000000000..58e09b9421
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-COMMUNITY-MIB.funcs
@@ -0,0 +1,2 @@
+{snmpCommunityTable, {snmp_community_mib, snmpCommunityTable, []}}.
+{snmpTargetAddrExtTable, {snmp_community_mib, snmpTargetAddrExtTable, []}}.
diff --git a/lib/snmp/mibs/SNMP-COMMUNITY-MIB.mib b/lib/snmp/mibs/SNMP-COMMUNITY-MIB.mib
new file mode 100644
index 0000000000..e9a545ffc5
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-COMMUNITY-MIB.mib
@@ -0,0 +1,377 @@
+SNMP-COMMUNITY-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ IpAddress
+ FROM RFC1155-SMI
+ MODULE-IDENTITY,
+ OBJECT-TYPE,
+ Integer32,
+ snmpModules
+ FROM SNMPv2-SMI
+ RowStatus,
+ TestAndIncr,
+ StorageType
+ FROM SNMPv2-TC
+ SnmpAdminString,
+ SnmpEngineID
+ FROM SNMP-FRAMEWORK-MIB
+ SnmpTagValue,
+ snmpTargetAddrEntry
+ FROM SNMP-TARGET-MIB
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP
+ FROM SNMPv2-CONF;
+
+snmpCommunityMIB MODULE-IDENTITY
+ LAST-UPDATED "9805110000Z" -- 11 May 1998, midnight
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-email: [email protected]
+ Subscribe: [email protected]
+ In msg body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ Trusted Information Systems
+ postal: 3060 Washington Rd
+ Glenwood MD 21738
+ USA
+ phone: +1-301-854-6889
+
+ Co-editor: Rob Frye
+ MCI Communications Corp.
+ Postal: 2100 Reston Parkway, Suite 600
+ Reston, VA 20191
+ USA
+ Phone: +1 703 715 7225
+
+ Co-editor: David B. Levi
+ SNMP Research, Inc.
+ Postal: 3001 Kimberlin Heights Road
+ Knoxville, TN 37920-9716
+ Phone: +1 423 573 1434
+
+ Co-editor: Shawn A. Routhier
+ Integrated Systems Inc.
+ Postal: 333 North Ave 4th Floor
+ Wakefield, MA 01880
+ Phone: +1 781 245 0804
+
+ Co-editor: Bert Wijnen
+ IBM T. J. Watson Research
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ phone: +31-348-432-794
+ "
+
+ DESCRIPTION
+ "This MIB module defines objects to help support coexistence
+ between SNMPv1, SNMPv2, and SNMPv3."
+ ::= { snmpModules 18 }
+
+-- Administrative assignments ****************************************
+
+snmpCommunityMIBObjects OBJECT IDENTIFIER ::= { snmpCommunityMIB 1 }
+snmpCommunityMIBConformance OBJECT IDENTIFIER ::= { snmpCommunityMIB 2 }
+
+--
+-- The snmpCommunityTable contains a database of community strings.
+-- This table provides mappings between community strings, and the
+-- parameters required for View-based Access Control.
+--
+
+snmpCommunityTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpCommunityEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of community strings configured in the SNMP
+ engine's Local Configuration Datastore (LCD)."
+ ::= { snmpCommunityMIBObjects 1 }
+
+snmpCommunityEntry OBJECT-TYPE
+ SYNTAX SnmpCommunityEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a particular community string."
+ INDEX { IMPLIED snmpCommunityIndex }
+ ::= { snmpCommunityTable 1 }
+
+SnmpCommunityEntry ::= SEQUENCE {
+ snmpCommunityIndex SnmpAdminString,
+ snmpCommunityName OCTET STRING,
+ snmpCommunitySecurityName SnmpAdminString,
+ snmpCommunityContextEngineID SnmpEngineID,
+ snmpCommunityContextName SnmpAdminString,
+ snmpCommunityTransportTag SnmpTagValue,
+ snmpCommunityStorageType StorageType,
+ snmpCommunityStatus RowStatus
+}
+
+snmpCommunityIndex OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The unique index value of a row in this table."
+ ::= { snmpCommunityEntry 1 }
+
+snmpCommunityName OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(1..64))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The community string for which a row in this table
+ represents a configuration."
+ ::= { snmpCommunityEntry 2 }
+
+snmpCommunitySecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "A human readable string representing the corresponding
+ value of snmpCommunityName in a Security Model
+ independent format."
+ ::= { snmpCommunityEntry 3 }
+
+snmpCommunityContextEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The contextEngineID indicating the location of the
+ context in which management information is accessed
+ when using the community string specified by the
+ corresponding instance of snmpCommunityName.
+
+ The default value is the snmpEngineID of the entity in
+ which this object is instantiated."
+ ::= { snmpCommunityEntry 4 }
+
+snmpCommunityContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The context in which management information is accessed
+ when using the community string specified by the corresponding
+ instance of snmpCommunityName."
+ DEFVAL { ''H } -- the empty string
+ ::= { snmpCommunityEntry 5 }
+
+snmpCommunityTransportTag OBJECT-TYPE
+ SYNTAX SnmpTagValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object specifies a set of transport endpoints
+ from which an agent will accept management requests.
+ If a management request containing this community
+ is received on a transport endpoint other than the
+ transport endpoints identified by this object, the
+ request is deemed unauthentic.
+
+ The transports identified by this object are specified
+ in the snmpTargetAddrTable. Entries in that table
+ whose snmpTargetAddrTagList contains this tag value
+ are identified.
+
+ If the value of this object has zero-length, transport
+ endpoints are not checked when authenticating messages
+ containing this community string."
+ DEFVAL { ''H } -- the empty string
+ ::= { snmpCommunityEntry 6 }
+
+snmpCommunityStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row in the
+ snmpCommunityTable. Conceptual rows having the value
+ 'permanent' need not allow write-access to any
+ columnar object in the row."
+ ::= { snmpCommunityEntry 7 }
+
+snmpCommunityStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row in the snmpCommunityTable.
+
+ An entry in this table is not qualified for activation
+ until instances of all corresponding columns have been
+ initialized, either through default values, or through
+ Set operations. The snmpCommunityName and
+ snmpCommunitySecurityName objects must be explicitly set."
+ ::= { snmpCommunityEntry 8 }
+
+--
+-- The snmpTargetAddrExtTable augments the snmpTargetAddrTable with
+-- a transport address mask value and a maximum message size value.
+-- The transport address mask allows entries in the
+-- snmpTargetAddrTable to define a set of addresses instead of just
+-- a single address. The maximum message size value allows the
+-- maximum message size of another SNMP entity to be configured
+-- for use in SNMPv1 (and SNMPv2c) transactions, where the message
+-- format does not specify a maximum message size.
+--
+
+snmpTargetAddrExtTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpTargetAddrExtEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of mask and mms values associated with the
+ snmpTargetAddrTable."
+ ::= { snmpCommunityMIBObjects 2 }
+
+snmpTargetAddrExtEntry OBJECT-TYPE
+ SYNTAX SnmpTargetAddrExtEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Information about a particular mask and mms value."
+ AUGMENTS { snmpTargetAddrEntry }
+ ::= { snmpTargetAddrExtTable 1 }
+
+SnmpTargetAddrExtEntry ::= SEQUENCE {
+ snmpTargetAddrTMask OCTET STRING,
+ snmpTargetAddrMMS Integer32
+}
+
+snmpTargetAddrTMask OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (0..255))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The mask value associated with an entry in the
+ snmpTargetAddrTable. The value of this object must
+ have the same length as the corresponding instance of
+ snmpTargetAddrTAddress, or must have length 0."
+ DEFVAL { ''H }
+ ::= { snmpTargetAddrExtEntry 1 }
+
+snmpTargetAddrMMS OBJECT-TYPE
+ SYNTAX Integer32 (484..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The maximum message size value associated with an entry
+ in the snmpTargetAddrTable."
+ DEFVAL { 2048 }
+ ::= { snmpTargetAddrExtEntry 2 }
+
+--
+-- The snmpTrapAddress and snmpTrapCommunity objects are included
+-- in notifications that are forwarded by a proxy, which were
+-- originally received as SNMPv1 Trap messages.
+--
+
+snmpTrapAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The value of the agent-addr field of a Trap PDU which
+ is forwarded by a proxy forwarder application using
+ an SNMP version other than SNMPv1. The value of this
+ object SHOULD contain the value of the agent-addr field
+ from the original Trap PDU as generated by an SNMPv1
+ agent."
+ ::= { snmpCommunityMIBObjects 3 }
+
+snmpTrapCommunity OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The value of the community string field of an SNMPv1
+ message containing a Trap PDU which is forwarded by a
+ a proxy forwarder application using an SNMP version
+ other than SNMPv1. The value of this object SHOULD
+ contain the value of the community string field from
+ the original SNMPv1 message containing a Trap PDU as
+ generated by an SNMPv1 agent."
+ ::= { snmpCommunityMIBObjects 4 }
+
+-- Conformance Information *******************************************
+
+snmpCommunityMIBCompliances OBJECT IDENTIFIER
+ ::= { snmpCommunityMIBConformance 1 }
+snmpCommunityMIBGroups OBJECT IDENTIFIER
+ ::= { snmpCommunityMIBConformance 2 }
+
+-- Compliance statements
+
+snmpCommunityMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP engines which
+ implement the SNMP-COMMUNITY-MIB."
+
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpCommunityGroup }
+
+ OBJECT snmpCommunityName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunitySecurityName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunitySecurityLevel
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityContextEngineID
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityContextName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityTransportTag
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT snmpCommunityStatus
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ ::= { snmpCommunityMIBCompliances 1 }
+
+snmpCommunityGroup OBJECT-GROUP
+ OBJECTS {
+ snmpCommunityName,
+ snmpCommunitySecurityName,
+ snmpCommunityContextEngineID,
+ snmpCommunityContextName,
+ snmpCommunityTransportTag,
+ snmpCommunityStorageType,
+ snmpCommunityStatus,
+ snmpTargetAddrTMask,
+ snmpTargetAddrMMS,
+ snmpTrapCommunity,
+ snmpTrapAddress
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing for configuration
+ of community strings for SNMPv1 (and SNMPv2c) usage."
+ ::= { snmpCommunityMIBGroups 1 }
+
+END
diff --git a/lib/snmp/mibs/SNMP-FRAMEWORK-MIB.funcs b/lib/snmp/mibs/SNMP-FRAMEWORK-MIB.funcs
new file mode 100644
index 0000000000..22cc24d44e
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-FRAMEWORK-MIB.funcs
@@ -0,0 +1,4 @@
+{snmpEngineID, {snmp_framework_mib, snmpEngineID, []}}.
+{snmpEngineBoots, {snmp_framework_mib, snmpEngineBoots, []}}.
+{snmpEngineTime, {snmp_framework_mib, snmpEngineTime, []}}.
+{snmpEngineMaxMessageSize, {snmp_framework_mib, snmpEngineMaxMessageSize, []}}.
diff --git a/lib/snmp/mibs/SNMP-FRAMEWORK-MIB.mib b/lib/snmp/mibs/SNMP-FRAMEWORK-MIB.mib
new file mode 100644
index 0000000000..a3fa40cf0e
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-FRAMEWORK-MIB.mib
@@ -0,0 +1,493 @@
+ SNMP-FRAMEWORK-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ OBJECT-IDENTITY,
+ snmpModules FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF;
+
+ snmpFrameworkMIB MODULE-IDENTITY
+ LAST-UPDATED "9901190000Z" -- 19 January 1999
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-EMail: [email protected]
+ Subscribe: [email protected]
+ In message body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ TIS Labs at Network Associates
+ postal: 3060 Washington Rd
+ Glenwood MD 21738
+ USA
+ phone: +1 301-854-6889
+
+ Co-editor Dave Harrington
+ Cabletron Systems, Inc.
+ postal: Post Office Box 5005
+ Mail Stop: Durham
+ 35 Industrial Way
+ Rochester, NH 03867-5005
+ USA
+ phone: +1 603-337-7357
+
+ Co-editor Randy Presuhn
+ BMC Software, Inc.
+ postal: 965 Stewart Drive
+ Sunnyvale, CA 94086
+ USA
+ phone: +1 408-616-3100
+
+ Co-editor: Bert Wijnen
+ IBM T.J. Watson Research
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ phone: +31 348-432-794
+ "
+ DESCRIPTION "The SNMP Management Architecture MIB"
+ REVISION "9901190000Z" -- 19 January 1999
+ DESCRIPTION "Updated editors' addresses, fixed typos.
+ "
+ REVISION "9711200000Z" -- 20 November 1997
+ DESCRIPTION "The initial version, published in RFC 2271.
+ "
+ ::= { snmpModules 10 }
+
+ -- Textual Conventions used in the SNMP Management Architecture ***
+
+ SnmpEngineID ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "An SNMP engine's administratively-unique identifier.
+ Objects of this type are for identification, not for
+ addressing, even though it is possible that an
+ address may have been used in the generation of
+ a specific value.
+
+ The value for this object may not be all zeros or
+ all 'ff'H or the empty (zero length) string.
+
+ The initial value for this object may be configured
+ via an operator console entry or via an algorithmic
+ function. In the latter case, the following
+ example algorithm is recommended.
+
+ In cases where there are multiple engines on the
+ same system, the use of this algorithm is NOT
+ appropriate, as it would result in all of those
+ engines ending up with the same ID value.
+
+ 1) The very first bit is used to indicate how the
+ rest of the data is composed.
+
+ 0 - as defined by enterprise using former methods
+ that existed before SNMPv3. See item 2 below.
+
+ 1 - as defined by this architecture, see item 3
+ below.
+
+ Note that this allows existing uses of the
+ engineID (also known as AgentID [RFC1910]) to
+ co-exist with any new uses.
+
+ 2) The snmpEngineID has a length of 12 octets.
+
+ The first four octets are set to the binary
+ equivalent of the agent's SNMP management
+ private enterprise number as assigned by the
+ Internet Assigned Numbers Authority (IANA).
+ For example, if Acme Networks has been assigned
+ { enterprises 696 }, the first four octets would
+ be assigned '000002b8'H.
+
+ The remaining eight octets are determined via
+ one or more enterprise-specific methods. Such
+ methods must be designed so as to maximize the
+ possibility that the value of this object will
+ be unique in the agent's administrative domain.
+ For example, it may be the IP address of the SNMP
+ entity, or the MAC address of one of the
+ interfaces, with each address suitably padded
+ with random octets. If multiple methods are
+ defined, then it is recommended that the first
+ octet indicate the method being used and the
+ remaining octets be a function of the method.
+
+ 3) The length of the octet strings varies.
+
+ The first four octets are set to the binary
+ equivalent of the agent's SNMP management
+ private enterprise number as assigned by the
+ Internet Assigned Numbers Authority (IANA).
+ For example, if Acme Networks has been assigned
+ { enterprises 696 }, the first four octets would
+ be assigned '000002b8'H.
+
+ The very first bit is set to 1. For example, the
+ above value for Acme Networks now changes to be
+ '800002b8'H.
+
+ The fifth octet indicates how the rest (6th and
+ following octets) are formatted. The values for
+ the fifth octet are:
+
+ 0 - reserved, unused.
+
+ 1 - IPv4 address (4 octets)
+ lowest non-special IP address
+
+ 2 - IPv6 address (16 octets)
+ lowest non-special IP address
+
+ 3 - MAC address (6 octets)
+ lowest IEEE MAC address, canonical
+ order
+
+ 4 - Text, administratively assigned
+ Maximum remaining length 27
+
+ 5 - Octets, administratively assigned
+ Maximum remaining length 27
+
+ 6-127 - reserved, unused
+
+ 127-255 - as defined by the enterprise
+ Maximum remaining length 27
+ "
+ SYNTAX OCTET STRING (SIZE(5..32))
+
+ SnmpSecurityModel ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "An identifier that uniquely identifies a
+ securityModel of the Security Subsystem within the
+ SNMP Management Architecture.
+
+ The values for securityModel are allocated as
+ follows:
+
+ - The zero value is reserved.
+ - Values between 1 and 255, inclusive, are reserved
+ for standards-track Security Models and are
+ managed by the Internet Assigned Numbers Authority
+ (IANA).
+ - Values greater than 255 are allocated to
+ enterprise-specific Security Models. An
+ enterprise-specific securityModel value is defined
+ to be:
+
+ enterpriseID * 256 + security model within
+ enterprise
+
+ For example, the fourth Security Model defined by
+ the enterprise whose enterpriseID is 1 would be
+ 260.
+
+ This scheme for allocation of securityModel
+ values allows for a maximum of 255 standards-
+ based Security Models, and for a maximum of
+ 255 Security Models per enterprise.
+
+ It is believed that the assignment of new
+ securityModel values will be rare in practice
+ because the larger the number of simultaneously
+ utilized Security Models, the larger the
+ chance that interoperability will suffer.
+ Consequently, it is believed that such a range
+ will be sufficient. In the unlikely event that
+ the standards committee finds this number to be
+ insufficient over time, an enterprise number
+ can be allocated to obtain an additional 255
+ possible values.
+
+ Note that the most significant bit must be zero;
+ hence, there are 23 bits allocated for various
+ organizations to design and define non-standard
+ securityModels. This limits the ability to
+ define new proprietary implementations of Security
+ Models to the first 8,388,608 enterprises.
+
+ It is worthwhile to note that, in its encoded
+ form, the securityModel value will normally
+ require only a single byte since, in practice,
+ the leftmost bits will be zero for most messages
+ and sign extension is suppressed by the encoding
+ rules.
+
+ As of this writing, there are several values
+ of securityModel defined for use with SNMP or
+ reserved for use with supporting MIB objects.
+ They are as follows:
+
+ 0 reserved for 'any'
+ 1 reserved for SNMPv1
+ 2 reserved for SNMPv2c
+ 3 User-Based Security Model (USM)
+ "
+ SYNTAX INTEGER(0 .. 2147483647)
+
+ SnmpMessageProcessingModel ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "An identifier that uniquely identifies a Message
+ Processing Model of the Message Processing
+ Subsystem within a SNMP Management Architecture.
+
+ The values for messageProcessingModel are
+ allocated as follows:
+
+ - Values between 0 and 255, inclusive, are
+ reserved for standards-track Message Processing
+ Models and are managed by the Internet Assigned
+ Numbers Authority (IANA).
+
+ - Values greater than 255 are allocated to
+ enterprise-specific Message Processing Models.
+ An enterprise messageProcessingModel value is
+ defined to be:
+
+ enterpriseID * 256 +
+ messageProcessingModel within enterprise
+
+ For example, the fourth Message Processing Model
+ defined by the enterprise whose enterpriseID
+ is 1 would be 260.
+
+ This scheme for allocating messageProcessingModel
+ values allows for a maximum of 255 standards-
+ based Message Processing Models, and for a
+ maximum of 255 Message Processing Models per
+ enterprise.
+
+ It is believed that the assignment of new
+ messageProcessingModel values will be rare
+ in practice because the larger the number of
+ simultaneously utilized Message Processing Models,
+ the larger the chance that interoperability
+ will suffer. It is believed that such a range
+ will be sufficient. In the unlikely event that
+ the standards committee finds this number to be
+ insufficient over time, an enterprise number
+ can be allocated to obtain an additional 256
+ possible values.
+
+ Note that the most significant bit must be zero;
+ hence, there are 23 bits allocated for various
+ organizations to design and define non-standard
+ messageProcessingModels. This limits the ability
+ to define new proprietary implementations of
+ Message Processing Models to the first 8,388,608
+ enterprises.
+
+ It is worthwhile to note that, in its encoded
+ form, the messageProcessingModel value will
+ normally require only a single byte since, in
+ practice, the leftmost bits will be zero for
+ most messages and sign extension is suppressed
+ by the encoding rules.
+
+ As of this writing, there are several values of
+ messageProcessingModel defined for use with SNMP.
+ They are as follows:
+
+ 0 reserved for SNMPv1
+ 1 reserved for SNMPv2c
+ 2 reserved for SNMPv2u and SNMPv2*
+ 3 reserved for SNMPv3
+ "
+ SYNTAX INTEGER(0 .. 2147483647)
+
+ SnmpSecurityLevel ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION "A Level of Security at which SNMP messages can be
+ sent or with which operations are being processed;
+ in particular, one of:
+
+ noAuthNoPriv - without authentication and
+ without privacy,
+ authNoPriv - with authentication but
+ without privacy,
+ authPriv - with authentication and
+ with privacy.
+
+ These three values are ordered such that
+ noAuthNoPriv is less than authNoPriv and
+ authNoPriv is less than authPriv.
+ "
+ SYNTAX INTEGER { noAuthNoPriv(1),
+ authNoPriv(2),
+ authPriv(3)
+ }
+
+ SnmpAdminString ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS current
+ DESCRIPTION "An octet string containing administrative
+ information, preferably in human-readable form.
+
+ To facilitate internationalization, this
+ information is represented using the ISO/IEC
+ IS 10646-1 character set, encoded as an octet
+ string using the UTF-8 transformation format
+ described in [RFC2279].
+
+ Since additional code points are added by
+ amendments to the 10646 standard from time
+ to time, implementations must be prepared to
+ encounter any code point from 0x00000000 to
+ 0x7fffffff. Byte sequences that do not
+ correspond to the valid UTF-8 encoding of a
+ code point or are outside this range are
+ prohibited.
+
+ The use of control codes should be avoided.
+
+ When it is necessary to represent a newline,
+ the control code sequence CR LF should be used.
+
+ The use of leading or trailing white space should
+ be avoided.
+
+ For code points not directly supported by user
+ interface hardware or software, an alternative
+ means of entry and display, such as hexadecimal,
+ may be provided.
+
+ For information encoded in 7-bit US-ASCII,
+ the UTF-8 encoding is identical to the
+ US-ASCII encoding.
+
+ UTF-8 may require multiple bytes to represent a
+ single character / code point; thus the length
+ of this object in octets may be different from
+ the number of characters encoded. Similarly,
+ size constraints refer to the number of encoded
+ octets, not the number of characters represented
+ by an encoding.
+
+ Note that when this TC is used for an object that
+ is used or envisioned to be used as an index, then
+ a SIZE restriction MUST be specified so that the
+ number of sub-identifiers for any object instance
+ does not exceed the limit of 128, as defined by
+ [RFC1905].
+
+ Note that the size of an SnmpAdminString object is
+ measured in octets, not characters.
+ "
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+
+ -- Administrative assignments ***************************************
+
+ snmpFrameworkAdmin
+ OBJECT IDENTIFIER ::= { snmpFrameworkMIB 1 }
+ snmpFrameworkMIBObjects
+ OBJECT IDENTIFIER ::= { snmpFrameworkMIB 2 }
+ snmpFrameworkMIBConformance
+ OBJECT IDENTIFIER ::= { snmpFrameworkMIB 3 }
+
+ -- the snmpEngine Group ********************************************
+
+ snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 }
+
+ snmpEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "An SNMP engine's administratively-unique identifier.
+ "
+ ::= { snmpEngine 1 }
+
+ snmpEngineBoots OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The number of times that the SNMP engine has
+ (re-)initialized itself since snmpEngineID
+ was last configured.
+ "
+ ::= { snmpEngine 2 }
+
+ snmpEngineTime OBJECT-TYPE
+ SYNTAX INTEGER (0..2147483647)
+ UNITS "seconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The number of seconds since the value of
+ the snmpEngineBoots object last changed.
+ When incrementing this object's value would
+ cause it to exceed its maximum,
+ snmpEngineBoots is incremented as if a
+ re-initialization had occurred, and this
+ object's value consequently reverts to zero.
+ "
+ ::= { snmpEngine 3 }
+
+ snmpEngineMaxMessageSize OBJECT-TYPE
+ SYNTAX INTEGER (484..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The maximum length in octets of an SNMP message
+ which this SNMP engine can send or receive and
+ process, determined as the minimum of the maximum
+ message size values supported among all of the
+ transports available to and supported by the engine.
+ "
+ ::= { snmpEngine 4 }
+
+
+ -- Registration Points for Authentication and Privacy Protocols **
+
+ snmpAuthProtocols OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "Registration point for standards-track
+ authentication protocols used in SNMP Management
+ Frameworks.
+ "
+ ::= { snmpFrameworkAdmin 1 }
+
+ snmpPrivProtocols OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "Registration point for standards-track privacy
+ protocols used in SNMP Management Frameworks.
+ "
+ ::= { snmpFrameworkAdmin 2 }
+
+ -- Conformance information ******************************************
+
+ snmpFrameworkMIBCompliances
+ OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 1}
+ snmpFrameworkMIBGroups
+ OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 2}
+
+ -- compliance statements
+
+ snmpFrameworkMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for SNMP engines which
+ implement the SNMP Management Framework MIB.
+ "
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpEngineGroup }
+
+ ::= { snmpFrameworkMIBCompliances 1 }
+
+ -- units of conformance
+
+ snmpEngineGroup OBJECT-GROUP
+ OBJECTS {
+ snmpEngineID,
+ snmpEngineBoots,
+ snmpEngineTime,
+ snmpEngineMaxMessageSize
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects for identifying and
+ determining the configuration and current timeliness
+ values of an SNMP engine.
+ "
+ ::= { snmpFrameworkMIBGroups 1 }
+
+ END
diff --git a/lib/snmp/mibs/SNMP-MPD-MIB.funcs b/lib/snmp/mibs/SNMP-MPD-MIB.funcs
new file mode 100644
index 0000000000..a5939123ea
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-MPD-MIB.funcs
@@ -0,0 +1,6 @@
+{snmpUnknownSecurityModels,
+ {snmp_standard_mib, variable_func, [snmpUnknownSecurityModels]}}.
+{snmpInvalidMsgs,
+ {snmp_standard_mib, variable_func, [snmpInvalidMsgs]}}.
+{snmpUnknownPDUHandlers,
+ {snmp_standard_mib, variable_func, [snmpUnknownPDUHandlers]}}.
diff --git a/lib/snmp/mibs/SNMP-MPD-MIB.mib b/lib/snmp/mibs/SNMP-MPD-MIB.mib
new file mode 100644
index 0000000000..4dea362f8a
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-MPD-MIB.mib
@@ -0,0 +1,140 @@
+ SNMP-MPD-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ MODULE-IDENTITY, OBJECT-TYPE,
+ snmpModules, Counter32 FROM SNMPv2-SMI;
+
+ snmpMPDMIB MODULE-IDENTITY
+ LAST-UPDATED "9901190000Z" -- 19 January 1999
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-EMail: [email protected]
+ Subscribe: [email protected]
+ In message body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ TIS Labs at Network Associates
+ postal: 3060 Washington Road
+ Glenwood, MD 21738
+ USA
+ phone: +1 301-854-6889
+
+ Co-editor: Jeffrey Case
+ SNMP Research, Inc.
+ postal: 3001 Kimberlin Heights Road
+ Knoxville, TN 37920-9716
+ USA
+ phone: +1 423-573-1434
+
+ Co-editor Dave Harrington
+ Cabletron Systems, Inc.
+ postal: Post Office Box 5005
+ MailStop: Durham
+ 35 Industrial Way
+ Rochester, NH 03867-5005
+ USA
+ phone: +1 603-337-7357
+
+ Co-editor: Randy Presuhn
+ BMC Software, Inc.
+ postal: 965 Stewart Drive
+ Sunnyvale, CA 94086
+ USA
+ phone: +1 408-616-3100
+
+ Co-editor: Bert Wijnen
+ IBM T. J. Watson Research
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ phone: +31 348-432-794
+
+ "
+ DESCRIPTION "The MIB for Message Processing and Dispatching"
+ REVISION "9901190000Z" -- 19 January 1999
+ DESCRIPTION "Corrected co-editors' address information."
+ REVISION "9709300000Z" -- 30 September 1997
+ DESCRIPTION "Original version, published as RFC 2272."
+ ::= { snmpModules 11 }
+
+ -- Administrative assignments ***************************************
+
+ snmpMPDAdmin OBJECT IDENTIFIER ::= { snmpMPDMIB 1 }
+ snmpMPDMIBObjects OBJECT IDENTIFIER ::= { snmpMPDMIB 2 }
+ snmpMPDMIBConformance OBJECT IDENTIFIER ::= { snmpMPDMIB 3 }
+
+ -- Statistics for SNMP Messages *************************************
+
+ snmpMPDStats OBJECT IDENTIFIER ::= { snmpMPDMIBObjects 1 }
+
+ snmpUnknownSecurityModels OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they referenced a
+ securityModel that was not known to or supported by
+ the SNMP engine.
+ "
+ ::= { snmpMPDStats 1 }
+
+ snmpInvalidMsgs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because there were invalid
+ or inconsistent components in the SNMP message.
+ "
+ ::= { snmpMPDStats 2 }
+
+ snmpUnknownPDUHandlers OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because the PDU contained
+ in the packet could not be passed to an application
+ responsible for handling the pduType, e.g. no SNMP
+ application had registered for the proper
+ combination of the contextEngineID and the pduType.
+ "
+ ::= { snmpMPDStats 3 }
+
+ -- Conformance information ******************************************
+
+ snmpMPDMIBCompliances OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 1}
+ snmpMPDMIBGroups OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 2}
+
+ -- Compliance statements
+
+ snmpMPDCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for SNMP entities which
+ implement the SNMP-MPD-MIB.
+ "
+
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpMPDGroup }
+
+ ::= { snmpMPDMIBCompliances 1 }
+
+ snmpMPDGroup OBJECT-GROUP
+ OBJECTS {
+ snmpUnknownSecurityModels,
+ snmpInvalidMsgs,
+ snmpUnknownPDUHandlers
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing for remote
+ monitoring of the SNMP Message Processing and
+ Dispatching process.
+ "
+ ::= { snmpMPDMIBGroups 1 }
+
+ END
diff --git a/lib/snmp/mibs/SNMP-NOTIFICATION-MIB.funcs b/lib/snmp/mibs/SNMP-NOTIFICATION-MIB.funcs
new file mode 100644
index 0000000000..9e0f533f57
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-NOTIFICATION-MIB.funcs
@@ -0,0 +1,3 @@
+{snmpNotifyTable, {snmp_notification_mib, snmpNotifyTable, []}}.
+{snmpNotifyFilterProfileTable, {snmp_notification_mib, snmpNotifyFilterProfileTable, []}}.
+{snmpNotifyFilterTable, {snmp_notification_mib, snmpNotifyFilterTable, []}}.
diff --git a/lib/snmp/mibs/SNMP-NOTIFICATION-MIB.mib b/lib/snmp/mibs/SNMP-NOTIFICATION-MIB.mib
new file mode 100644
index 0000000000..fcb7a444b2
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-NOTIFICATION-MIB.mib
@@ -0,0 +1,568 @@
+ SNMP-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY,
+ OBJECT-TYPE,
+ snmpModules
+ FROM SNMPv2-SMI
+
+ RowStatus,
+ StorageType
+ FROM SNMPv2-TC
+
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+
+ SnmpTagValue,
+ snmpTargetParamsName
+ FROM SNMP-TARGET-MIB
+
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP
+ FROM SNMPv2-CONF;
+
+ snmpNotificationMIB MODULE-IDENTITY
+ LAST-UPDATED "9808040000Z"
+ ORGANIZATION "IETF SNMPv3 Working Group"
+ CONTACT-INFO
+ "WG-email: [email protected]
+ Subscribe: [email protected]
+ In message body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ Trusted Information Systems
+ Postal: 3060 Washington Rd
+ Glenwood MD 21738
+ USA
+ Phone: +1-301-854-6889
+
+ Co-editor: David B. Levi
+ SNMP Research, Inc.
+ Postal: 3001 Kimberlin Heights Road
+ Knoxville, TN 37920-9716
+ Phone: +1 423 573 1434
+
+ Co-editor: Paul Meyer
+ Secure Computing Corporation
+ Postal: 2675 Long Lake Road
+ Roseville, MN 55113
+ Phone: +1 651 628 1592
+
+ Co-editor: Bob Stewart
+ Cisco Systems, Inc.
+ Postal: 170 West Tasman Drive
+ San Jose, CA 95134-1706
+ Phone: +1 603 654 2686"
+ DESCRIPTION
+ "This MIB module defines MIB objects which provide
+ mechanisms to remotely configure the parameters
+ used by an SNMP entity for the generation of
+ notifications."
+ REVISION "9808040000Z"
+ DESCRIPTION "Clarifications, published as
+ draft-ietf-snmpv3-appl-v2-01.txt."
+ REVISION "9707140000Z"
+ DESCRIPTION "The initial revision, published as RFC2273."
+ ::= { snmpModules 13 }
+
+ snmpNotifyObjects OBJECT IDENTIFIER ::=
+ { snmpNotificationMIB 1 }
+
+ snmpNotifyConformance OBJECT IDENTIFIER ::=
+ { snmpNotificationMIB 3 }
+
+ --
+ --
+ -- The snmpNotifyObjects group
+ --
+ --
+
+ snmpNotifyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpNotifyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is used to select management targets which should
+ receive notifications, as well as the type of notification
+ which should be sent to each selected management target."
+ ::= { snmpNotifyObjects 1 }
+
+ snmpNotifyEntry OBJECT-TYPE
+ SYNTAX SnmpNotifyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry in this table selects a set of management targets
+ which should receive notifications, as well as the type of
+ notification which should be sent to each selected
+ management target.
+
+ Entries in the snmpNotifyTable are created and
+ deleted using the snmpNotifyRowStatus object."
+ INDEX { IMPLIED snmpNotifyName }
+ ::= { snmpNotifyTable 1 }
+
+ SnmpNotifyEntry ::= SEQUENCE {
+ snmpNotifyName SnmpAdminString,
+ snmpNotifyTag SnmpTagValue,
+ snmpNotifyType INTEGER,
+ snmpNotifyStorageType StorageType,
+ snmpNotifyRowStatus RowStatus
+ }
+
+ snmpNotifyName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this snmpNotifyEntry."
+ ::= { snmpNotifyEntry 1 }
+
+ snmpNotifyTag OBJECT-TYPE
+ SYNTAX SnmpTagValue
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object contains a single tag value which is used
+ to select entries in the snmpTargetAddrTable. Any entry
+ in the snmpTargetAddrTable which contains a tag value
+ which is equal to the value of an instance of this
+ object is selected. If this object contains a value
+ of zero length, no entries are selected."
+ DEFVAL { "" }
+ ::= { snmpNotifyEntry 2 }
+
+ snmpNotifyType OBJECT-TYPE
+ SYNTAX INTEGER {
+ trap(1),
+ inform(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object determines the type of notification to
+ be generated for entries in the snmpTargetAddrTable
+ selected by the corresponding instance of
+ snmpNotifyTag. This value is only used when
+ generating notifications, and is ignored when
+ using the snmpTargetAddrTable for other purposes.
+
+ If the value of this object is trap(1), then any
+ messages generated for selected rows will contain
+ Unconfirmed-Class PDUs.
+
+ If the value of this object is inform(2), then any
+ messages generated for selected rows will contain
+ Confirmed-Class PDUs.
+
+ Note that if an SNMP entity only supports
+ generation of Unconfirmed-Class PDUs (and not
+ Confirmed-Class PDUs), then this object may be
+ read-only."
+ DEFVAL { trap }
+ ::= { snmpNotifyEntry 3 }
+
+ snmpNotifyStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row."
+ DEFVAL { nonVolatile }
+ ::= { snmpNotifyEntry 4 }
+
+ snmpNotifyRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5)."
+ ::= { snmpNotifyEntry 5 }
+
+ snmpNotifyFilterProfileTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpNotifyFilterProfileEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table is used to associate a notification filter
+ profile with a particular set of target parameters."
+ ::= { snmpNotifyObjects 2 }
+
+ snmpNotifyFilterProfileEntry OBJECT-TYPE
+ SYNTAX SnmpNotifyFilterProfileEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry in this table indicates the name of the filter
+ profile to be used when generating notifications using
+ the corresponding entry in the snmpTargetParamsTable.
+
+ Entries in the snmpNotifyFilterProfileTable are created
+ and deleted using the snmpNotifyFilterProfileRowStatus
+ object."
+ INDEX { IMPLIED snmpTargetParamsName }
+ ::= { snmpNotifyFilterProfileTable 1 }
+
+ SnmpNotifyFilterProfileEntry ::= SEQUENCE {
+ snmpNotifyFilterProfileName SnmpAdminString,
+ snmpNotifyFilterProfileStorType StorageType,
+ snmpNotifyFilterProfileRowStatus RowStatus
+ }
+
+ snmpNotifyFilterProfileName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The name of the filter profile to be used when generating
+ notifications using the corresponding entry in the
+ snmpTargetAddrTable."
+ ::= { snmpNotifyFilterProfileEntry 1 }
+
+ snmpNotifyFilterProfileStorType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type of this conceptual row."
+ DEFVAL { nonVolatile }
+ ::= { snmpNotifyFilterProfileEntry 2 }
+
+ snmpNotifyFilterProfileRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5).
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the
+ snmpNotifyFilterProfileRowStatus column is 'notReady'.
+
+ In particular, a newly created row cannot be made
+ active until the corresponding instance of
+ snmpNotifyFilterProfileName has been set."
+ ::= { snmpNotifyFilterProfileEntry 3 }
+
+ snmpNotifyFilterTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpNotifyFilterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The table of filter profiles. Filter profiles are used
+ to determine whether particular management targets should
+ receive particular notifications.
+
+ When a notification is generated, it must be compared
+ with the filters associated with each management target
+ which is configured to receive notifications, in order to
+ determine whether it may be sent to each such management
+ target.
+
+ A more complete discussion of notification filtering
+ can be found in section 6. of [SNMP-APPL]."
+ ::= { snmpNotifyObjects 3 }
+
+ snmpNotifyFilterEntry OBJECT-TYPE
+ SYNTAX SnmpNotifyFilterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An element of a filter profile.
+
+ Entries in the snmpNotifyFilterTable are created and
+ deleted using the snmpNotifyFilterRowStatus object."
+ INDEX { snmpNotifyFilterProfileName,
+ IMPLIED snmpNotifyFilterSubtree }
+ ::= { snmpNotifyFilterTable 1 }
+
+ SnmpNotifyFilterEntry ::= SEQUENCE {
+ snmpNotifyFilterSubtree OBJECT IDENTIFIER,
+ snmpNotifyFilterMask OCTET STRING,
+ snmpNotifyFilterType INTEGER,
+ snmpNotifyFilterStorageType StorageType,
+ snmpNotifyFilterRowStatus RowStatus
+ }
+
+ snmpNotifyFilterSubtree OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The MIB subtree which, when combined with the corresponding
+ instance of snmpNotifyFilterMask, defines a family of
+ subtrees which are included in or excluded from the
+ filter profile."
+ ::= { snmpNotifyFilterEntry 1 }
+
+ snmpNotifyFilterMask OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..16))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The bit mask which, in combination with the corresponding
+ instance of snmpNotifyFilterSubtree, defines a family of
+ subtrees which are included in or excluded from the
+ filter profile.
+
+ Each bit of this bit mask corresponds to a
+ sub-identifier of snmpNotifyFilterSubtree, with the
+ most significant bit of the i-th octet of this octet
+ string value (extended if necessary, see below)
+ corresponding to the (8*i - 7)-th sub-identifier, and
+ the least significant bit of the i-th octet of this
+ octet string corresponding to the (8*i)-th
+ sub-identifier, where i is in the range 1 through 16.
+
+ Each bit of this bit mask specifies whether or not
+ the corresponding sub-identifiers must match when
+ determining if an OBJECT IDENTIFIER matches this
+ family of filter subtrees; a '1' indicates that an
+ exact match must occur; a '0' indicates 'wild card',
+ i.e., any sub-identifier value matches.
+
+ Thus, the OBJECT IDENTIFIER X of an object instance
+ is contained in a family of filter subtrees if, for
+ each sub-identifier of the value of
+ snmpNotifyFilterSubtree, either:
+
+ the i-th bit of snmpNotifyFilterMask is 0, or
+
+ the i-th sub-identifier of X is equal to the i-th
+ sub-identifier of the value of
+ snmpNotifyFilterSubtree.
+
+ If the value of this bit mask is M bits long and
+ there are more than M sub-identifiers in the
+ corresponding instance of snmpNotifyFilterSubtree,
+ then the bit mask is extended with 1's to be the
+ required length.
+
+ Note that when the value of this object is the
+ zero-length string, this extension rule results in
+ a mask of all-1's being used (i.e., no 'wild card'),
+ and the family of filter subtrees is the one
+ subtree uniquely identified by the corresponding
+ instance of snmpNotifyFilterSubtree."
+ DEFVAL { ''H }
+ ::= { snmpNotifyFilterEntry 2 }
+
+ snmpNotifyFilterType OBJECT-TYPE
+ SYNTAX INTEGER {
+ included(1),
+ excluded(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object indicates whether the family of filter subtrees
+ defined by this entry are included in or excluded from a
+ filter. A more detailed discussion of the use of this
+ object can be found in section 6. of [SNMP-APPL]."
+ DEFVAL { included }
+ ::= { snmpNotifyFilterEntry 3 }
+
+ snmpNotifyFilterStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type of this conceptual row."
+ DEFVAL { nonVolatile }
+ ::= { snmpNotifyFilterEntry 4 }
+
+ snmpNotifyFilterRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5)."
+ ::= { snmpNotifyFilterEntry 5 }
+
+ --
+ --
+ -- Conformance information
+ --
+ --
+ snmpNotifyCompliances OBJECT IDENTIFIER ::=
+ { snmpNotifyConformance 1 }
+ snmpNotifyGroups OBJECT IDENTIFIER ::=
+ { snmpNotifyConformance 2 }
+
+ --
+ --
+ -- Compliance statements
+ --
+ --
+
+ snmpNotifyBasicCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for minimal SNMP entities which
+ implement only SNMP Unconfirmed-Class notifications and
+ read-create operations on only the snmpTargetAddrTable."
+ MODULE SNMP-TARGET-MIB
+ MANDATORY-GROUPS { snmpTargetBasicGroup }
+
+ OBJECT snmpTargetParamsMPModel
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpTargetParamsSecurityModel
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpTargetParamsSecurityName
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpTargetParamsSecurityLevel
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpTargetParamsStorageType
+ SYNTAX INTEGER {
+ readOnly(5)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required.
+ Support of the values other(1), volatile(2),
+ nonVolatile(3), and permanent(4) is not required."
+
+ OBJECT snmpTargetParamsRowStatus
+ SYNTAX INTEGER {
+ active(1)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access to the
+ snmpTargetParamsTable is not required.
+ Support of the values notInService(2), notReady(3),
+ createAndGo(4), createAndWait(5), and destroy(6) is
+ not required."
+
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpNotifyGroup }
+
+ OBJECT snmpNotifyTag
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required."
+
+ OBJECT snmpNotifyType
+ SYNTAX INTEGER {
+ trap(1)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required.
+ Support of the value notify(2) is not required."
+
+ OBJECT snmpNotifyStorageType
+ SYNTAX INTEGER {
+ readOnly(5)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access is not required.
+ Support of the values other(1), volatile(2),
+ nonVolatile(3), and permanent(4) is not required."
+
+ OBJECT snmpNotifyRowStatus
+ SYNTAX INTEGER {
+ active(1)
+ }
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Create/delete/modify access to the
+ snmpNotifyTable is not required.
+ Support of the values notInService(2), notReady(3),
+ createAndGo(4), createAndWait(5), and destroy(6) is
+ not required."
+
+ ::= { snmpNotifyCompliances 1 }
+
+ snmpNotifyBasicFiltersCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which implement
+ SNMP Unconfirmed-Class notifications with filtering, and
+ read-create operations on all related tables."
+ MODULE SNMP-TARGET-MIB
+ MANDATORY-GROUPS { snmpTargetBasicGroup }
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpNotifyGroup,
+ snmpNotifyFilterGroup }
+ ::= { snmpNotifyCompliances 2 }
+
+ snmpNotifyFullCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which either
+ implement only SNMP Confirmed-Class notifications, or both
+ SNMP Unconfirmed-Class and Confirmed-Class notifications,
+ plus filtering and read-create operations on all related
+ tables."
+ MODULE SNMP-TARGET-MIB
+ MANDATORY-GROUPS { snmpTargetBasicGroup,
+ snmpTargetResponseGroup }
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpNotifyGroup,
+ snmpNotifyFilterGroup }
+ ::= { snmpNotifyCompliances 3 }
+
+ snmpNotifyGroup OBJECT-GROUP
+ OBJECTS {
+ snmpNotifyTag,
+ snmpNotifyType,
+ snmpNotifyStorageType,
+ snmpNotifyRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects for selecting which management
+ targets are used for generating notifications, and the
+ type of notification to be generated for each selected
+ management target."
+ ::= { snmpNotifyGroups 1 }
+
+ snmpNotifyFilterGroup OBJECT-GROUP
+ OBJECTS {
+ snmpNotifyFilterProfileName,
+ snmpNotifyFilterProfileStorType,
+ snmpNotifyFilterProfileRowStatus,
+ snmpNotifyFilterMask,
+ snmpNotifyFilterType,
+ snmpNotifyFilterStorageType,
+ snmpNotifyFilterRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing remote configuration
+ of notification filters."
+ ::= { snmpNotifyGroups 2 }
+
+ END
diff --git a/lib/snmp/mibs/SNMP-TARGET-MIB.funcs b/lib/snmp/mibs/SNMP-TARGET-MIB.funcs
new file mode 100644
index 0000000000..a4aca711fb
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-TARGET-MIB.funcs
@@ -0,0 +1,7 @@
+{snmpTargetAddrTable, {snmp_target_mib, snmpTargetAddrTable, []}}.
+{snmpTargetParamsTable, {snmp_target_mib, snmpTargetParamsTable, []}}.
+{snmpTargetSpinLock, {snmp_target_mib, snmpTargetSpinLock, []}}.
+{snmpUnavailableContexts, {snmp_standard_mib, variable_func,
+ [snmpUnavailableContexts]}}.
+{snmpUnknownContexts, {snmp_standard_mib, variable_func,
+ [snmpUnavailableContexts]}}.
diff --git a/lib/snmp/mibs/SNMP-TARGET-MIB.mib b/lib/snmp/mibs/SNMP-TARGET-MIB.mib
new file mode 100644
index 0000000000..b1b2c49753
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-TARGET-MIB.mib
@@ -0,0 +1,629 @@
+ SNMP-TARGET-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY,
+ OBJECT-TYPE,
+ snmpModules,
+ Counter32,
+ Integer32
+ FROM SNMPv2-SMI
+
+ TEXTUAL-CONVENTION,
+ TDomain,
+ TAddress,
+ TimeInterval,
+ RowStatus,
+ StorageType,
+ TestAndIncr
+ FROM SNMPv2-TC
+
+ SnmpSecurityModel,
+ SnmpMessageProcessingModel,
+ SnmpSecurityLevel,
+ SnmpAdminString
+ FROM SNMP-FRAMEWORK-MIB
+
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP
+ FROM SNMPv2-CONF;
+
+ snmpTargetMIB MODULE-IDENTITY
+ LAST-UPDATED "9808040000Z"
+ ORGANIZATION "IETF SNMPv3 Working Group"
+ CONTACT-INFO
+ "WG-email: [email protected]
+ Subscribe: [email protected]
+ In message body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ Trusted Information Systems
+ Postal: 3060 Washington Rd
+ Glenwood MD 21738
+ USA
+ Phone: +1-301-854-6889
+
+ Co-editor: David B. Levi
+ SNMP Research, Inc.
+ Postal: 3001 Kimberlin Heights Road
+ Knoxville, TN 37920-9716
+ Phone: +1 423 573 1434
+
+ Co-editor: Paul Meyer
+ Secure Computing Corporation
+ Postal: 2675 Long Lake Road
+ Roseville, MN 55113
+ Phone: +1 651 628 1592
+
+ Co-editor: Bob Stewart
+ Cisco Systems, Inc.
+ Postal: 170 West Tasman Drive
+ San Jose, CA 95134-1706
+ Phone: +1 603 654 2686"
+ DESCRIPTION
+ "This MIB module defines MIB objects which provide
+ mechanisms to remotely configure the parameters used
+ by an SNMP entity for the generation of SNMP messages."
+ REVISION "9808040000Z"
+ DESCRIPTION "Clarifications, published as
+ draft-ietf-snmpv3-appl-v2-01.txt."
+ REVISION "9707140000Z"
+ DESCRIPTION "The initial revision, published as RFC2273."
+ ::= { snmpModules 12 }
+
+ snmpTargetObjects OBJECT IDENTIFIER ::= { snmpTargetMIB 1 }
+ snmpTargetConformance OBJECT IDENTIFIER ::= { snmpTargetMIB 3 }
+
+ SnmpTagValue ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS current
+ DESCRIPTION
+ "An octet string containing a tag value.
+ Tag values are preferably in human-readable form.
+
+ To facilitate internationalization, this information
+ is represented using the ISO/IEC IS 10646-1 character
+ set, encoded as an octet string using the UTF-8
+ character encoding scheme described in RFC 2279.
+
+ Since additional code points are added by amendments
+ to the 10646 standard from time to time,
+ implementations must be prepared to encounter any code
+ point from 0x00000000 to 0x7fffffff.
+
+ The use of control codes should be avoided, and certain
+ control codes are not allowed as described below.
+
+ For code points not directly supported by user
+ interface hardware or software, an alternative means
+ of entry and display, such as hexadecimal, may be
+ provided.
+
+ For information encoded in 7-bit US-ASCII, the UTF-8
+ representation is identical to the US-ASCII encoding.
+
+ Note that when this TC is used for an object that
+ is used or envisioned to be used as an index, then a
+ SIZE restriction must be specified so that the number
+ of sub-identifiers for any object instance does not
+ exceed the limit of 128, as defined by [RFC1905].
+
+ An object of this type contains a single tag value
+ which is used to select a set of entries in a table.
+
+ A tag value is an arbitrary string of octets, but
+ may not contain a delimiter character. Delimiter
+ characters are defined to be one of the following:
+
+ - An ASCII space character (0x20).
+
+ - An ASCII TAB character (0x09).
+
+ - An ASCII carriage return (CR) character (0x0D).
+
+ - An ASCII line feed (LF) character (0x0B).
+
+ Delimiter characters are used to separate tag values
+ in a tag list. An object of this type may only
+ contain a single tag value, and so delimiter
+ characters are not allowed in a value of this type.
+
+ Some examples of valid tag values are:
+
+ - 'acme'
+
+ - 'router'
+
+ - 'host'
+
+ The use of a tag value to select table entries is
+ application and MIB specific."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+ SnmpTagList ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+ STATUS current
+ DESCRIPTION
+ "An octet string containing a list of tag values.
+ Tag values are preferably in human-readable form.
+
+ To facilitate internationalization, this information
+ is represented using the ISO/IEC IS 10646-1 character
+ set, encoded as an octet string using the UTF-8
+ character encoding scheme described in RFC 2279.
+
+ Since additional code points are added by amendments
+ to the 10646 standard from time to time,
+ implementations must be prepared to encounter any code
+ point from 0x00000000 to 0x7fffffff.
+
+ The use of control codes should be avoided, except as
+ described below.
+
+ For code points not directly supported by user
+ interface hardware or software, an alternative means
+ of entry and display, such as hexadecimal, may be
+ provided.
+
+ For information encoded in 7-bit US-ASCII, the UTF-8
+ representation is identical to the US-ASCII encoding.
+
+ An object of this type contains a list of tag values
+ which are used to select a set of entries in a table.
+
+ A tag value is an arbitrary string of octets, but
+ may not contain a delimiter character. Delimiter
+ characters are defined to be one of the following:
+
+ - An ASCII space character (0x20).
+
+ - An ASCII TAB character (0x09).
+
+ - An ASCII carriage return (CR) character (0x0D).
+
+ - An ASCII line feed (LF) character (0x0B).
+
+ Delimiter characters are used to separate tag values
+ in a tag list. Only a single delimiter character may
+ occur between two tag values. A tag value may not
+ have a zero length. These constraints imply certain
+ restrictions on the contents of this object:
+
+ - There cannot be a leading or trailing delimiter
+ character.
+
+ - There cannot be multiple adjacent delimiter
+ characters.
+
+ Some examples of valid tag lists are:
+
+ - An empty string
+
+ - 'acme router'
+
+ - 'host managerStation'
+
+ Note that although a tag value may not have a length of
+ zero, an empty string is still valid. This indicates
+ an empty list (i.e. there are no tag values in the list).
+
+ The use of the tag list to select table entries is
+ application and MIB specific. Typically, an application
+ will provide one or more tag values, and any entry
+ which contains some combination of these tag values
+ will be selected."
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+ --
+ --
+ -- The snmpTargetObjects group
+ --
+ --
+
+ snmpTargetSpinLock OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object is used to facilitate modification of table
+ entries in the SNMP-TARGET-MIB module by multiple
+ managers. In particular, it is useful when modifying
+ the value of the snmpTargetAddrTagList object.
+
+ The procedure for modifying the snmpTargetAddrTagList
+ object is as follows:
+
+ 1. Retrieve the value of snmpTargetSpinLock and
+ of snmpTargetAddrTagList.
+
+ 2. Generate a new value for snmpTargetAddrTagList.
+
+ 3. Set the value of snmpTargetSpinLock to the
+ retrieved value, and the value of
+ snmpTargetAddrTagList to the new value. If
+ the set fails for the snmpTargetSpinLock
+ object, go back to step 1."
+ ::= { snmpTargetObjects 1 }
+
+ snmpTargetAddrTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpTargetAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of transport addresses to be used in the generation
+ of SNMP messages."
+ ::= { snmpTargetObjects 2 }
+
+ snmpTargetAddrEntry OBJECT-TYPE
+ SYNTAX SnmpTargetAddrEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A transport address to be used in the generation
+ of SNMP operations.
+
+ Entries in the snmpTargetAddrTable are created and
+ deleted using the snmpTargetAddrRowStatus object."
+ INDEX { IMPLIED snmpTargetAddrName }
+ ::= { snmpTargetAddrTable 1 }
+
+ SnmpTargetAddrEntry ::= SEQUENCE {
+ snmpTargetAddrName SnmpAdminString,
+ snmpTargetAddrTDomain TDomain,
+ snmpTargetAddrTAddress TAddress,
+ snmpTargetAddrTimeout TimeInterval,
+ snmpTargetAddrRetryCount Integer32,
+ snmpTargetAddrTagList SnmpTagList,
+ snmpTargetAddrParams SnmpAdminString,
+ snmpTargetAddrStorageType StorageType,
+ snmpTargetAddrRowStatus RowStatus
+ }
+
+ snmpTargetAddrName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this snmpTargetAddrEntry."
+ ::= { snmpTargetAddrEntry 1 }
+
+ snmpTargetAddrTDomain OBJECT-TYPE
+ SYNTAX TDomain
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object indicates the transport type of the address
+ contained in the snmpTargetAddrTAddress object."
+ ::= { snmpTargetAddrEntry 2 }
+
+ snmpTargetAddrTAddress OBJECT-TYPE
+ SYNTAX TAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object contains a transport address. The format of
+ this address depends on the value of the
+ snmpTargetAddrTDomain object."
+ ::= { snmpTargetAddrEntry 3 }
+
+ snmpTargetAddrTimeout OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object should reflect the expected maximum round
+ trip time for communicating with the transport address
+ defined by this row. When a message is sent to this
+ address, and a response (if one is expected) is not
+ received within this time period, an implementation
+ may assume that the response will not be delivered.
+
+ Note that the time interval that an application waits
+ for a response may actually be derived from the value
+ of this object. The method for deriving the actual time
+ interval is implementation dependent. One such method
+ is to derive the expected round trip time based on a
+ particular retransmission algorithm and on the number
+ of timeouts which have occurred. The type of message may
+ also be considered when deriving expected round trip
+ times for retransmissions. For example, if a message is
+ being sent with a securityLevel that indicates both
+ authentication and privacy, the derived value may be
+ increased to compensate for extra processing time spent
+ during authentication and encryption processing."
+ DEFVAL { 1500 }
+ ::= { snmpTargetAddrEntry 4 }
+
+ snmpTargetAddrRetryCount OBJECT-TYPE
+ SYNTAX Integer32 (0..255)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object specifies a default number of retries to be
+ attempted when a response is not received for a generated
+ message. An application may provide its own retry count,
+ in which case the value of this object is ignored."
+ DEFVAL { 3 }
+ ::= { snmpTargetAddrEntry 5 }
+
+ snmpTargetAddrTagList OBJECT-TYPE
+ SYNTAX SnmpTagList
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object contains a list of tag values which are
+ used to select target addresses for a particular
+ operation."
+ DEFVAL { "" }
+ ::= { snmpTargetAddrEntry 6 }
+
+ snmpTargetAddrParams OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The value of this object identifies an entry in the
+ snmpTargetParamsTable. The identified entry
+ contains SNMP parameters to be used when generating
+ messages to be sent to this transport address."
+ ::= { snmpTargetAddrEntry 7 }
+
+ snmpTargetAddrStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row."
+ DEFVAL { nonVolatile }
+ ::= { snmpTargetAddrEntry 8 }
+
+ snmpTargetAddrRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5).
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the snmpTargetAddrRowStatus
+ column is 'notReady'.
+
+ In particular, a newly created row cannot be made
+ active until the corresponding instances of
+ snmpTargetAddrTDomain, snmpTargetAddrTAddress, and
+ snmpTargetAddrParams have all been set.
+
+ The following objects may not be modified while the
+ value of this object is active(1):
+ - snmpTargetAddrTDomain
+ - snmpTargetAddrTAddress
+ An attempt to set these objects while the value of
+ snmpTargetAddrRowStatus is active(1) will result in
+ an inconsistentValue error."
+ ::= { snmpTargetAddrEntry 9 }
+
+ snmpTargetParamsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SnmpTargetParamsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table of SNMP target information to be used
+ in the generation of SNMP messages."
+ ::= { snmpTargetObjects 3 }
+
+ snmpTargetParamsEntry OBJECT-TYPE
+ SYNTAX SnmpTargetParamsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A set of SNMP target information.
+
+ Entries in the snmpTargetParamsTable are created and
+ deleted using the snmpTargetParamsRowStatus object."
+ INDEX { IMPLIED snmpTargetParamsName }
+ ::= { snmpTargetParamsTable 1 }
+
+ SnmpTargetParamsEntry ::= SEQUENCE {
+ snmpTargetParamsName SnmpAdminString,
+ snmpTargetParamsMPModel SnmpMessageProcessingModel,
+ snmpTargetParamsSecurityModel SnmpSecurityModel,
+ snmpTargetParamsSecurityName SnmpAdminString,
+ snmpTargetParamsSecurityLevel SnmpSecurityLevel,
+ snmpTargetParamsStorageType StorageType,
+ snmpTargetParamsRowStatus RowStatus
+ }
+
+ snmpTargetParamsName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The locally arbitrary, but unique identifier associated
+ with this snmpTargetParamsEntry."
+ ::= { snmpTargetParamsEntry 1 }
+
+ snmpTargetParamsMPModel OBJECT-TYPE
+ SYNTAX SnmpMessageProcessingModel
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The Message Processing Model to be used when generating
+ SNMP messages using this entry."
+ ::= { snmpTargetParamsEntry 2 }
+
+ snmpTargetParamsSecurityModel OBJECT-TYPE
+ SYNTAX SnmpSecurityModel (1..2147483647)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The Security Model to be used when generating SNMP
+ messages using this entry. An implementation may
+ choose to return an inconsistentValue error if an
+ attempt is made to set this variable to a value
+ for a security model which the implementation does
+ not support."
+ ::= { snmpTargetParamsEntry 3 }
+
+ snmpTargetParamsSecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The securityName which identifies the Principal on
+ whose behalf SNMP messages will be generated using
+ this entry."
+ ::= { snmpTargetParamsEntry 4 }
+
+ snmpTargetParamsSecurityLevel OBJECT-TYPE
+ SYNTAX SnmpSecurityLevel
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The Level of Security to be used when generating
+ SNMP messages using this entry."
+ ::= { snmpTargetParamsEntry 5 }
+
+ snmpTargetParamsStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type for this conceptual row."
+ DEFVAL { nonVolatile }
+ ::= { snmpTargetParamsEntry 6 }
+
+ snmpTargetParamsRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this conceptual row.
+
+ To create a row in this table, a manager must
+ set this object to either createAndGo(4) or
+ createAndWait(5).
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the snmpTargetParamsRowStatus
+ column is 'notReady'.
+
+ In particular, a newly created row cannot be made
+ active until the corresponding
+ snmpTargetParamsMPModel,
+ snmpTargetParamsSecurityModel,
+ snmpTargetParamsSecurityName,
+ and snmpTargetParamsSecurityLevel have all been set.
+
+ The following objects may not be modified while the
+ value of this object is active(1):
+ - snmpTargetParamsMPModel
+ - snmpTargetParamsSecurityModel
+ - snmpTargetParamsSecurityName
+ - snmpTargetParamsSecurityLevel
+ An attempt to set these objects while the value of
+ snmpTargetParamsRowStatus is active(1) will result in
+ an inconsistentValue error."
+ ::= { snmpTargetParamsEntry 7 }
+
+ snmpUnavailableContexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received by the SNMP
+ engine which were dropped because the context
+ contained in the message was unavailable."
+ ::= { snmpTargetObjects 4 }
+
+ snmpUnknownContexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets received by the SNMP
+ engine which were dropped because the context
+ contained in the message was unknown."
+ ::= { snmpTargetObjects 5 }
+
+ --
+ --
+ -- Conformance information
+ --
+ --
+
+ snmpTargetCompliances OBJECT IDENTIFIER ::=
+ { snmpTargetConformance 1 }
+ snmpTargetGroups OBJECT IDENTIFIER ::=
+ { snmpTargetConformance 2 }
+
+ --
+ --
+ -- Compliance statements
+ --
+ --
+ snmpTargetCommandResponderCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which include
+ a command responder application."
+ MODULE -- This Module
+ MANDATORY-GROUPS { snmpTargetCommandResponderGroup }
+ ::= { snmpTargetCompliances 1 }
+
+ snmpTargetBasicGroup OBJECT-GROUP
+ OBJECTS {
+ snmpTargetSpinLock,
+ snmpTargetAddrTDomain,
+ snmpTargetAddrTAddress,
+ snmpTargetAddrTagList,
+ snmpTargetAddrParams,
+ snmpTargetAddrStorageType,
+ snmpTargetAddrRowStatus,
+ snmpTargetParamsMPModel,
+ snmpTargetParamsSecurityModel,
+ snmpTargetParamsSecurityName,
+ snmpTargetParamsSecurityLevel,
+ snmpTargetParamsStorageType,
+ snmpTargetParamsRowStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic remote
+ configuration of management targets."
+ ::= { snmpTargetGroups 1 }
+
+ snmpTargetResponseGroup OBJECT-GROUP
+ OBJECTS {
+ snmpTargetAddrTimeout,
+ snmpTargetAddrRetryCount
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing remote configuration
+ of management targets for applications which generate
+ SNMP messages for which a response message would be
+ expected."
+ ::= { snmpTargetGroups 2 }
+
+ snmpTargetCommandResponderGroup OBJECT-GROUP
+ OBJECTS {
+ snmpUnavailableContexts,
+ snmpUnknownContexts
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects required for command responder
+ applications, used for counting error conditions."
+ ::= { snmpTargetGroups 3 }
+
+ END
diff --git a/lib/snmp/mibs/SNMP-USER-BASED-SM-MIB.funcs b/lib/snmp/mibs/SNMP-USER-BASED-SM-MIB.funcs
new file mode 100644
index 0000000000..76344ec70c
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-USER-BASED-SM-MIB.funcs
@@ -0,0 +1,14 @@
+{usmStatsUnsupportedSecLevels,
+ {snmp_standard_mib, variable_func, [usmStatsUnsupportedSecLevels]}}.
+{usmStatsNotInTimeWindows,
+ {snmp_standard_mib, variable_func, [usmStatsNotInTimeWindows]}}.
+{usmStatsUnknownUserNames,
+ {snmp_standard_mib, variable_func, [usmStatsUnknownUserNames]}}.
+{usmStatsUnknownEngineIDs,
+ {snmp_standard_mib, variable_func, [usmStatsUnknownEngineIDs]}}.
+{usmStatsWrongDigests,
+ {snmp_standard_mib, variable_func, [usmStatsWrongDigests]}}.
+{usmStatsDecryptionErrors,
+ {snmp_standard_mib, variable_func, [usmStatsDecryptionErrors]}}.
+{usmUserTable, {snmp_user_based_sm_mib, usmUserTable, []}}.
+{usmUserSpinLock, {snmp_user_based_sm_mib, usmUserSpinLock, []}}.
diff --git a/lib/snmp/mibs/SNMP-USER-BASED-SM-MIB.mib b/lib/snmp/mibs/SNMP-USER-BASED-SM-MIB.mib
new file mode 100644
index 0000000000..50d7011ef7
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-USER-BASED-SM-MIB.mib
@@ -0,0 +1,887 @@
+SNMP-USER-BASED-SM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ OBJECT-IDENTITY,
+ snmpModules, Counter32 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION, TestAndIncr,
+ RowStatus, RowPointer,
+ StorageType, AutonomousType FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ SnmpAdminString, SnmpEngineID,
+ snmpAuthProtocols, snmpPrivProtocols FROM SNMP-FRAMEWORK-MIB;
+
+snmpUsmMIB MODULE-IDENTITY
+ LAST-UPDATED "9901200000Z" -- 20 Jan 1999, midnight
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-email: [email protected]
+ Subscribe: [email protected]
+ In msg body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ Trusted Information Systems
+ postal: 3060 Washington Rd
+ Glenwood MD 21738
+ USA
+ phone: +1-301-854-6889
+
+ Co-editor Uri Blumenthal
+ IBM T. J. Watson Research
+ postal: 30 Saw Mill River Pkwy,
+ Hawthorne, NY 10532
+ USA
+ phone: +1-914-784-7964
+
+ Co-editor: Bert Wijnen
+ IBM T. J. Watson Research
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ phone: +31-348-432-794
+ "
+ DESCRIPTION "The management information definitions for the
+ SNMP User-based Security Model.
+ "
+-- Revision history
+ REVISION "9901200000Z" -- 20 Jan 1999, midnight
+ -- RFC-Editor assigns RFCxxxx
+ DESCRIPTION "Clarifications, published as RFCxxxx"
+
+ REVISION "9711200000Z" -- 20 Nov 1997, midnight
+ DESCRIPTION "Initial version, published as RFC2274"
+
+ ::= { snmpModules 15 }
+
+-- Administrative assignments ****************************************
+
+usmMIBObjects OBJECT IDENTIFIER ::= { snmpUsmMIB 1 }
+usmMIBConformance OBJECT IDENTIFIER ::= { snmpUsmMIB 2 }
+
+-- Identification of Authentication and Privacy Protocols ************
+
+usmNoAuthProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "No Authentication Protocol."
+ ::= { snmpAuthProtocols 1 }
+
+usmHMACMD5AuthProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "The HMAC-MD5-96 Digest Authentication Protocol."
+ REFERENCE "- H. Krawczyk, M. Bellare, R. Canetti HMAC:
+ Keyed-Hashing for Message Authentication,
+ RFC2104, Feb 1997.
+ - Rivest, R., Message Digest Algorithm MD5, RFC1321.
+ "
+ ::= { snmpAuthProtocols 2 }
+
+usmHMACSHAAuthProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "The HMAC-SHA-96 Digest Authentication Protocol."
+ REFERENCE "- H. Krawczyk, M. Bellare, R. Canetti, HMAC:
+ Keyed-Hashing for Message Authentication,
+ RFC2104, Feb 1997.
+ - Secure Hash Algorithm. NIST FIPS 180-1.
+ "
+ ::= { snmpAuthProtocols 3 }
+
+usmNoPrivProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "No Privacy Protocol."
+ ::= { snmpPrivProtocols 1 }
+
+usmDESPrivProtocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "The CBC-DES Symmetric Encryption Protocol."
+ REFERENCE "- Data Encryption Standard, National Institute of
+ Standards and Technology. Federal Information
+ Processing Standard (FIPS) Publication 46-1.
+ Supersedes FIPS Publication 46,
+ (January, 1977; reaffirmed January, 1988).
+
+ - Data Encryption Algorithm, American National
+ Standards Institute. ANSI X3.92-1981,
+ (December, 1980).
+
+ - DES Modes of Operation, National Institute of
+ Standards and Technology. Federal Information
+ Processing Standard (FIPS) Publication 81,
+ (December, 1980).
+
+ - Data Encryption Algorithm - Modes of Operation,
+ American National Standards Institute.
+ ANSI X3.106-1983, (May 1983).
+ "
+ ::= { snmpPrivProtocols 2 }
+
+
+-- Textual Conventions ***********************************************
+
+
+KeyChange ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Every definition of an object with this syntax must identify
+ a protocol P, a secret key K, and a hash algorithm H
+ that produces output of L octets.
+
+ The object's value is a manager-generated, partially-random
+ value which, when modified, causes the value of the secret
+ key K, to be modified via a one-way function.
+
+ The value of an instance of this object is the concatenation
+ of two components: first a 'random' component and then a
+ 'delta' component.
+
+ The lengths of the random and delta components
+ are given by the corresponding value of the protocol P;
+ if P requires K to be a fixed length, the length of both the
+ random and delta components is that fixed length; if P
+ allows the length of K to be variable up to a particular
+ maximum length, the length of the random component is that
+ maximum length and the length of the delta component is any
+ length less than or equal to that maximum length.
+ For example, usmHMACMD5AuthProtocol requires K to be a fixed
+ length of 16 octets and L - of 16 octets.
+ usmHMACSHAAuthProtocol requires K to be a fixed length of
+ 20 octets and L - of 20 octets. Other protocols may define
+ other sizes, as deemed appropriate.
+
+ When a requester wants to change the old key K to a new
+ key keyNew on a remote entity, the 'random' component is
+ obtained from either a true random generator, or from a
+ pseudorandom generator, and the 'delta' component is
+ computed as follows:
+
+ - a temporary variable is initialized to the existing value
+ of K;
+ - if the length of the keyNew is greater than L octets,
+ then:
+ - the random component is appended to the value of the
+ temporary variable, and the result is input to the
+ the hash algorithm H to produce a digest value, and
+ the temporary variable is set to this digest value;
+ - the value of the temporary variable is XOR-ed with
+ the first (next) L-octets (16 octets in case of MD5)
+ of the keyNew to produce the first (next) L-octets
+ (16 octets in case of MD5) of the 'delta' component.
+ - the above two steps are repeated until the unused
+ portion of the keyNew component is L octets or less,
+ - the random component is appended to the value of the
+ temporary variable, and the result is input to the
+ hash algorithm H to produce a digest value;
+ - this digest value, truncated if necessary to be the same
+ length as the unused portion of the keyNew, is XOR-ed
+ with the unused portion of the keyNew to produce the
+ (final portion of the) 'delta' component.
+
+ For example, using MD5 as the hash algorithm H:
+
+ iterations = (lenOfDelta - 1)/16; /* integer division */
+ temp = keyOld;
+ for (i = 0; i < iterations; i++) {
+ temp = MD5 (temp || random);
+ delta[i*16 .. (i*16)+15] =
+ temp XOR keyNew[i*16 .. (i*16)+15];
+ }
+ temp = MD5 (temp || random);
+ delta[i*16 .. lenOfDelta-1] =
+ temp XOR keyNew[i*16 .. lenOfDelta-1];
+
+ The 'random' and 'delta' components are then concatenated as
+ described above, and the resulting octet string is sent to
+ the recipient as the new value of an instance of this object.
+
+ At the receiver side, when an instance of this object is set
+ to a new value, then a new value of K is computed as follows:
+
+ - a temporary variable is initialized to the existing value
+ of K;
+ - if the length of the delta component is greater than L
+ octets, then:
+ - the random component is appended to the value of the
+ temporary variable, and the result is input to the
+ hash algorithm H to produce a digest value, and the
+ temporary variable is set to this digest value;
+ - the value of the temporary variable is XOR-ed with
+ the first (next) L-octets (16 octets in case of MD5)
+ of the delta component to produce the first (next)
+ L-octets (16 octets in case of MD5) of the new value
+ of K.
+ - the above two steps are repeated until the unused
+ portion of the delta component is L octets or less,
+ - the random component is appended to the value of the
+ temporary variable, and the result is input to the
+ hash algorithm H to produce a digest value;
+ - this digest value, truncated if necessary to be the same
+ length as the unused portion of the delta component, is
+ XOR-ed with the unused portion of the delta component to
+ produce the (final portion of the) new value of K.
+
+ For example, using MD5 as the hash algorithm H:
+
+ iterations = (lenOfDelta - 1)/16; /* integer division */
+ temp = keyOld;
+ for (i = 0; i < iterations; i++) {
+ temp = MD5 (temp || random);
+ keyNew[i*16 .. (i*16)+15] =
+ temp XOR delta[i*16 .. (i*16)+15];
+ }
+ temp = MD5 (temp || random);
+ keyNew[i*16 .. lenOfDelta-1] =
+ temp XOR delta[i*16 .. lenOfDelta-1];
+
+ The value of an object with this syntax, whenever it is
+ retrieved by the management protocol, is always the zero
+ length string.
+
+ Note that the keyOld and keyNew are the localized keys.
+
+ Note that it is probably wise that when an SNMP entity sends
+ a SetRequest to change a key, that it keeps a copy of the old
+ key until it has confirmed that the key change actually
+ succeeded.
+ "
+ SYNTAX OCTET STRING
+
+
+-- Statistics for the User-based Security Model **********************
+
+
+usmStats OBJECT IDENTIFIER ::= { usmMIBObjects 1 }
+
+
+usmStatsUnsupportedSecLevels OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they requested a
+ securityLevel that was unknown to the SNMP engine
+ or otherwise unavailable.
+ "
+ ::= { usmStats 1 }
+
+usmStatsNotInTimeWindows OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they appeared
+ outside of the authoritative SNMP engine's window.
+ "
+ ::= { usmStats 2 }
+
+usmStatsUnknownUserNames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they referenced a
+ user that was not known to the SNMP engine.
+ "
+ ::= { usmStats 3 }
+
+usmStatsUnknownEngineIDs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they referenced an
+ snmpEngineID that was not known to the SNMP engine.
+ "
+ ::= { usmStats 4 }
+
+usmStatsWrongDigests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they didn't
+ contain the expected digest value.
+ "
+ ::= { usmStats 5 }
+
+usmStatsDecryptionErrors OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total number of packets received by the SNMP
+ engine which were dropped because they could not be
+ decrypted.
+ "
+ ::= { usmStats 6 }
+
+-- The usmUser Group ************************************************
+
+usmUser OBJECT IDENTIFIER ::= { usmMIBObjects 2 }
+
+usmUserSpinLock OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "An advisory lock used to allow several cooperating
+ Command Generator Applications to coordinate their
+ use of facilities to alter secrets in the
+ usmUserTable.
+ "
+ ::= { usmUser 1 }
+
+-- The table of valid users for the User-based Security Model ********
+
+usmUserTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UsmUserEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The table of users configured in the SNMP engine's
+ Local Configuration Datastore (LCD).
+
+ To create a new user (i.e., to instantiate a new
+ conceptual row in this table), it is recommended to
+ follow this procedure:
+
+ 1) GET(usmUserSpinLock.0) and save in sValue.
+ 2) SET(usmUserSpinLock.0=sValue,
+ usmUserCloneFrom=templateUser,
+ usmUserStatus=createAndWait)
+ You should use a template user to clone from
+ which has the proper auth/priv protocol defined.
+
+ If the new user is to use privacy:
+
+ 3) generate the keyChange value based on the secret
+ privKey of the clone-from user and the secret key
+ to be used for the new user. Let us call this
+ pkcValue.
+ 4) GET(usmUserSpinLock.0) and save in sValue.
+ 5) SET(usmUserSpinLock.0=sValue,
+ usmUserPrivKeyChange=pkcValue
+ usmUserPublic=randomValue1)
+ 6) GET(usmUserPulic) and check it has randomValue1.
+ If not, repeat steps 4-6.
+
+ If the new user will never use privacy:
+
+ 7) SET(usmUserPrivProtocol=usmNoPrivProtocol)
+
+ If the new user is to use authentication:
+
+ 8) generate the keyChange value based on the secret
+ authKey of the clone-from user and the secret key
+ to be used for the new user. Let us call this
+ akcValue.
+ 9) GET(usmUserSpinLock.0) and save in sValue.
+ 10) SET(usmUserSpinLock.0=sValue,
+ usmUserAuthKeyChange=akcValue
+ usmUserPublic=randomValue2)
+ 11) GET(usmUserPulic) and check it has randomValue2.
+ If not, repeat steps 9-11.
+
+ If the new user will never use authentication:
+
+ 12) SET(usmUserAuthProtocol=usmNoAuthProtocol)
+
+ Finally, activate the new user:
+
+ 13) SET(usmUserStatus=active)
+
+ The new user should now be available and ready to be
+ used for SNMPv3 communication. Note however that access
+ to MIB data must be provided via configuration of the
+ SNMP-VIEW-BASED-ACM-MIB.
+
+ The use of usmUserSpinlock is to avoid conflicts with
+ another SNMP command responder application which may
+ also be acting on the usmUserTable.
+ "
+ ::= { usmUser 2 }
+
+usmUserEntry OBJECT-TYPE
+ SYNTAX UsmUserEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A user configured in the SNMP engine's Local
+ Configuration Datastore (LCD) for the User-based
+ Security Model.
+ "
+ INDEX { usmUserEngineID,
+ usmUserName
+ }
+ ::= { usmUserTable 1 }
+
+UsmUserEntry ::= SEQUENCE
+ {
+ usmUserEngineID SnmpEngineID,
+ usmUserName SnmpAdminString,
+ usmUserSecurityName SnmpAdminString,
+ usmUserCloneFrom RowPointer,
+ usmUserAuthProtocol AutonomousType,
+ usmUserAuthKeyChange KeyChange,
+ usmUserOwnAuthKeyChange KeyChange,
+ usmUserPrivProtocol AutonomousType,
+ usmUserPrivKeyChange KeyChange,
+ usmUserOwnPrivKeyChange KeyChange,
+ usmUserPublic OCTET STRING,
+ usmUserStorageType StorageType,
+ usmUserStatus RowStatus
+ }
+
+usmUserEngineID OBJECT-TYPE
+ SYNTAX SnmpEngineID
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An SNMP engine's administratively-unique identifier.
+
+ In a simple agent, this value is always that agent's
+ own snmpEngineID value.
+
+ The value can also take the value of the snmpEngineID
+ of a remote SNMP engine with which this user can
+ communicate.
+ "
+ ::= { usmUserEntry 1 }
+
+usmUserName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "A human readable string representing the name of
+ the user.
+
+ This is the (User-based Security) Model dependent
+ security ID.
+ "
+ ::= { usmUserEntry 2 }
+
+usmUserSecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A human readable string representing the user in
+ Security Model independent format.
+
+ The default transformation of the User-based Security
+ Model dependent security ID to the securityName and
+ vice versa is the identity function so that the
+ securityName is the same as the userName.
+ "
+ ::= { usmUserEntry 3 }
+
+usmUserCloneFrom OBJECT-TYPE
+ SYNTAX RowPointer
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "A pointer to another conceptual row in this
+ usmUserTable. The user in this other conceptual
+ row is called the clone-from user.
+
+ When a new user is created (i.e., a new conceptual
+ row is instantiated in this table), the privacy and
+ authentication parameters of the new user must be
+ cloned from its clone-from user. These parameters are:
+ - authentication protocol (usmUserAuthProtocol)
+ - privacy protocol (usmUserPrivProtocol)
+ They will be copied regardless of what the current
+ value is.
+
+ Cloning also causes the initial values of the secret
+ authentication key (authKey) and the secret encryption
+ key (privKey) of the new user to be set to the same
+ value as the corresponding secret of the clone-from
+ user.
+
+ The first time an instance of this object is set by
+ a management operation (either at or after its
+ instantiation), the cloning process is invoked.
+ Subsequent writes are successful but invoke no
+ action to be taken by the receiver.
+ The cloning process fails with an 'inconsistentName'
+ error if the conceptual row representing the
+ clone-from user does not exist or is not in an active
+ state when the cloning process is invoked.
+
+ When this object is read, the ZeroDotZero OID
+ is returned.
+ "
+ ::= { usmUserEntry 4 }
+
+usmUserAuthProtocol OBJECT-TYPE
+ SYNTAX AutonomousType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "An indication of whether messages sent on behalf of
+ this user to/from the SNMP engine identified by
+ usmUserEngineID, can be authenticated, and if so,
+ the type of authentication protocol which is used.
+
+ An instance of this object is created concurrently
+ with the creation of any other object instance for
+ the same user (i.e., as part of the processing of
+ the set operation which creates the first object
+ instance in the same conceptual row).
+
+ If an initial set operation (i.e. at row creation time)
+ tries to set a value for an unknown or unsupported
+ protocol, then a 'wrongValue' error must be returned.
+
+ The value will be overwritten/set when a set operation
+ is performed on the corresponding instance of
+ usmUserCloneFrom.
+
+ Once instantiated, the value of such an instance of
+ this object can only be changed via a set operation to
+ the value of the usmNoAuthProtocol.
+
+ If a set operation tries to change the value of an
+ existing instance of this object to any value other
+ than usmNoAuthProtocol, then an 'inconsistentValue'
+ error must be returned.
+
+ If a set operation tries to set the value to the
+ usmNoAuthProtocol while the usmUserPrivProtocol value
+ in the same row is not equal to usmNoPrivProtocol,
+ then an 'inconsistentValue' error must be returned.
+ That means that an SNMP command generator application
+ must first ensure that the usmUserPrivProtocol is set
+ to the usmNoPrivProtocol value before it can set
+ the usmUserAuthProtocol value to usmNoAuthProtocol.
+ "
+ DEFVAL { usmNoAuthProtocol }
+ ::= { usmUserEntry 5 }
+
+usmUserAuthKeyChange OBJECT-TYPE
+ SYNTAX KeyChange -- typically (SIZE (0 | 32)) for HMACMD5
+ -- typically (SIZE (0 | 40)) for HMACSHA
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "An object, which when modified, causes the secret
+ authentication key used for messages sent on behalf
+ of this user to/from the SNMP engine identified by
+ usmUserEngineID, to be modified via a one-way
+ function.
+
+ The associated protocol is the usmUserAuthProtocol.
+ The associated secret key is the user's secret
+ authentication key (authKey). The associated hash
+ algorithm is the algorithm used by the user's
+ usmUserAuthProtocol.
+
+ When creating a new user, it is an 'inconsistentName'
+ error for a set operation to refer to this object
+ unless it is previously or concurrently initialized
+ through a set operation on the corresponding instance
+ of usmUserCloneFrom.
+
+ When the value of the corresponding usmUserAuthProtocol
+ is usmNoAuthProtocol, then a set is successful, but
+ effectively is a no-op.
+
+ When this object is read, the zero-length (empty)
+ string is returned.
+
+ The recommended way to do a key change is as follows:
+
+ 1) GET(usmUserSpinLock.0) and save in sValue.
+ 2) generate the keyChange value based on the old
+ (existing) secret key and the new secret key,
+ let us call this kcValue.
+
+ If you do the key change on behalf of another user:
+
+ 3) SET(usmUserSpinLock.0=sValue,
+ usmUserAuthKeyChange=kcValue
+ usmUserPublic=randomValue)
+
+ If you do the key change for yourself:
+
+ 4) SET(usmUserSpinLock.0=sValue,
+ usmUserOwnAuthKeyChange=kcValue
+ usmUserPublic=randomValue)
+
+ If you get a response with error-status of noError,
+ then the SET succeeded and the new key is active.
+ If you do not get a response, then you can issue a
+ GET(usmUserPublic) and check if the value is equal
+ to the randomValue you did send in the SET. If so, then
+ the key change succeeded and the new key is active
+ (probably the response got lost). If not, then the SET
+ request probably never reached the target and so you
+ can start over with the procedure above.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 6 }
+
+usmUserOwnAuthKeyChange OBJECT-TYPE
+ SYNTAX KeyChange -- typically (SIZE (0 | 32)) for HMACMD5
+ -- typically (SIZE (0 | 40)) for HMACSHA
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "Behaves exactly as usmUserAuthKeyChange, with one
+ notable difference: in order for the set operation
+ to succeed, the usmUserName of the operation
+ requester must match the usmUserName that
+ indexes the row which is targeted by this
+ operation.
+ In addition, the USM security model must be
+ used for this operation.
+
+ The idea here is that access to this column can be
+ public, since it will only allow a user to change
+ his own secret authentication key (authKey).
+ Note that this can only be done once the row is active.
+
+ When a set is received and the usmUserName of the
+ requester is not the same as the umsUserName that
+ indexes the row which is targeted by this operation,
+ then a 'noAccess' error must be returned.
+
+ When a set is received and the security model in use
+ is not USM, then a 'noAccess' error must be returned.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 7 }
+
+usmUserPrivProtocol OBJECT-TYPE
+ SYNTAX AutonomousType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "An indication of whether messages sent on behalf of
+ this user to/from the SNMP engine identified by
+ usmUserEngineID, can be protected from disclosure,
+ and if so, the type of privacy protocol which is used.
+
+ An instance of this object is created concurrently
+ with the creation of any other object instance for
+ the same user (i.e., as part of the processing of
+ the set operation which creates the first object
+ instance in the same conceptual row).
+
+ If an initial set operation (i.e. at row creation time)
+ tries to set a value for an unknown or unsupported
+ protocol, then a 'wrongValue' error must be returned.
+
+ The value will be overwritten/set when a set operation
+ is performed on the corresponding instance of
+ usmUserCloneFrom.
+
+ Once instantiated, the value of such an instance of
+ this object can only be changed via a set operation to
+ the value of the usmNoPrivProtocol.
+
+ If a set operation tries to change the value of an
+ existing instance of this object to any value other
+ than usmNoPrivProtocol, then an 'inconsistentValue'
+ error must be returned.
+
+ Note that if any privacy protocol is used, then you
+ must also use an authentication protocol. In other
+ words, if usmUserPrivProtocol is set to anything else
+ than usmNoPrivProtocol, then the corresponding instance
+ of usmUserAuthProtocol cannot have a value of
+ usmNoAuthProtocol. If it does, then an
+ 'inconsistentValue' error must be returned.
+ "
+ DEFVAL { usmNoPrivProtocol }
+ ::= { usmUserEntry 8 }
+
+usmUserPrivKeyChange OBJECT-TYPE
+ SYNTAX KeyChange -- typically (SIZE (0 | 32)) for DES
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "An object, which when modified, causes the secret
+ encryption key used for messages sent on behalf
+ of this user to/from the SNMP engine identified by
+ usmUserEngineID, to be modified via a one-way
+ function.
+
+ The associated protocol is the usmUserPrivProtocol.
+ The associated secret key is the user's secret
+ privacy key (privKey). The associated hash
+ algorithm is the algorithm used by the user's
+ usmUserAuthProtocol.
+
+ When creating a new user, it is an 'inconsistentName'
+ error for a set operation to refer to this object
+ unless it is previously or concurrently initialized
+ through a set operation on the corresponding instance
+ of usmUserCloneFrom.
+
+ When the value of the corresponding usmUserPrivProtocol
+ is usmNoPrivProtocol, then a set is successful, but
+ effectively is a no-op.
+
+ When this object is read, the zero-length (empty)
+ string is returned.
+ See the description clause of usmUserAuthKeyChange for
+ a recommended procedure to do a key change.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 9 }
+
+usmUserOwnPrivKeyChange OBJECT-TYPE
+ SYNTAX KeyChange -- typically (SIZE (0 | 32)) for DES
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "Behaves exactly as usmUserPrivKeyChange, with one
+ notable difference: in order for the Set operation
+ to succeed, the usmUserName of the operation
+ requester must match the usmUserName that indexes
+ the row which is targeted by this operation.
+ In addition, the USM security model must be
+ used for this operation.
+
+ The idea here is that access to this column can be
+ public, since it will only allow a user to change
+ his own secret privacy key (privKey).
+ Note that this can only be done once the row is active.
+
+ When a set is received and the usmUserName of the
+ requester is not the same as the umsUserName that
+ indexes the row which is targeted by this operation,
+ then a 'noAccess' error must be returned.
+
+ When a set is received and the security model in use
+ is not USM, then a 'noAccess' error must be returned.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 10 }
+
+usmUserPublic OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "A publicly-readable value which can be written as part
+ of the procedure for changing a user's secret
+ authentication and/or privacy key, and later read to
+ determine whether the change of the secret was
+ effected.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { usmUserEntry 11 }
+
+usmUserStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row.
+
+ Conceptual rows having the value 'permanent' must
+ allow write-access at a minimum to:
+
+ - usmUserAuthKeyChange, usmUserOwnAuthKeyChange
+ and usmUserPublic for a user who employs
+ authentication, and
+ - usmUserPrivKeyChange, usmUserOwnPrivKeyChange
+ and usmUserPublic for a user who employs
+ privacy.
+
+ Note that any user who employs authentication or
+ privacy must allow its secret(s) to be updated and
+ thus cannot be 'readOnly'.
+
+ If an initial set operation tries to set the value to
+ 'readOnly' for a user who employs authentication or
+ privacy, then an 'inconsistentValue' error must be
+ returned. Note that if the value has been previously
+ set (implicit or explicit) to any value, then the rules
+ as defined in the StorageType Textual Convention apply.
+
+ It is an implementation issue to decide if a SET for
+ a readOnly or permanent row is accepted at all. In some
+ contexts this may make sense, in others it may not. If
+ a SET for a readOnly or permanent row is not accepted
+ at all, then a 'wrongValue' error must be returned.
+ "
+ DEFVAL { nonVolatile }
+ ::= { usmUserEntry 12 }
+
+usmUserStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row.
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the usmUserStatus column
+ is 'notReady'.
+
+ In particular, a newly created row for a user who
+ employs authentication, cannot be made active until the
+ corresponding usmUserCloneFrom and usmUserAuthKeyChange
+ have been set.
+
+ Further, a newly created row for a user who also
+ employs privacy, cannot be made active until the
+ usmUserPrivKeyChange has been set.
+
+ The RowStatus TC [RFC1903] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified,
+ except for usmUserOwnAuthKeyChange and
+ usmUserOwnPrivKeyChange. For these 2 objects, the
+ value of usmUserStatus MUST be active.
+ "
+ ::= { usmUserEntry 13 }
+
+-- Conformance Information *******************************************
+
+usmMIBCompliances OBJECT IDENTIFIER ::= { usmMIBConformance 1 }
+usmMIBGroups OBJECT IDENTIFIER ::= { usmMIBConformance 2 }
+
+-- Compliance statements
+
+usmMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for SNMP engines which
+ implement the SNMP-USER-BASED-SM-MIB.
+ "
+
+ MODULE -- this module
+ MANDATORY-GROUPS { usmMIBBasicGroup }
+
+ OBJECT usmUserAuthProtocol
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT usmUserPrivProtocol
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ ::= { usmMIBCompliances 1 }
+
+-- Units of compliance
+usmMIBBasicGroup OBJECT-GROUP
+ OBJECTS {
+ usmStatsUnsupportedSecLevels,
+ usmStatsNotInTimeWindows,
+ usmStatsUnknownUserNames,
+ usmStatsUnknownEngineIDs,
+ usmStatsWrongDigests,
+ usmStatsDecryptionErrors,
+ usmUserSpinLock,
+ usmUserSecurityName,
+ usmUserCloneFrom,
+ usmUserAuthProtocol,
+ usmUserAuthKeyChange,
+ usmUserOwnAuthKeyChange,
+ usmUserPrivProtocol,
+ usmUserPrivKeyChange,
+ usmUserOwnPrivKeyChange,
+ usmUserPublic,
+ usmUserStorageType,
+ usmUserStatus
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing for configuration
+ of an SNMP engine which implements the SNMP
+ User-based Security Model.
+ "
+ ::= { usmMIBGroups 1 }
+
+END
diff --git a/lib/snmp/mibs/SNMP-USM-AES-MIB.mib b/lib/snmp/mibs/SNMP-USM-AES-MIB.mib
new file mode 100644
index 0000000000..e9e9fb827b
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-USM-AES-MIB.mib
@@ -0,0 +1,62 @@
+SNMP-USM-AES-MIB DEFINITIONS ::= BEGIN
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-IDENTITY,
+ snmpModules FROM SNMPv2-SMI -- [RFC2578]
+ snmpPrivProtocols FROM SNMP-FRAMEWORK-MIB; -- [RFC3411]
+
+snmpUsmAesMIB MODULE-IDENTITY
+ LAST-UPDATED "200406140000Z"
+ ORGANIZATION "IETF"
+ CONTACT-INFO "Uri Blumenthal
+ Lucent Technologies / Bell Labs
+ 67 Whippany Rd.
+ 14D-318
+ Whippany, NJ 07981, USA
+ 973-386-2163
+
+ Fabio Maino
+ Andiamo Systems, Inc.
+ 375 East Tasman Drive
+ San Jose, CA 95134, USA
+ 408-853-7530
+
+ Keith McCloghrie
+ Cisco Systems, Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134-1706, USA
+
+ 408-526-5260
+ DESCRIPTION "Definitions of Object Identities needed for
+ the use of AES by SNMP's User-based Security
+ Model.
+
+ Copyright (C) The Internet Society (2004).
+
+ This version of this MIB module is part of RFC 3826;
+ see the RFC itself for full legal notices.
+ Supplementary information may be available on
+ http://www.ietf.org/copyrights/ianamib.html."
+ REVISION "200406140000Z"
+ DESCRIPTION "Initial version, published as RFC3826"
+
+ ::= { snmpModules 20 }
+
+usmAesCfb128Protocol OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION "The CFB128-AES-128 Privacy Protocol."
+ REFERENCE "- Specification for the ADVANCED ENCRYPTION
+ STANDARD. Federal Information Processing
+ Standard (FIPS) Publication 197.
+ (November 2001).
+
+ - Dworkin, M., NIST Recommendation for Block
+ Cipher Modes of Operation, Methods and
+ Techniques. NIST Special Publication 800-38A
+ (December 2001).
+ "
+ ::= { snmpPrivProtocols 4 }
+
+END
diff --git a/lib/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.funcs b/lib/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.funcs
new file mode 100644
index 0000000000..ec6301f4ac
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.funcs
@@ -0,0 +1,7 @@
+{vacmAccessTable, {snmp_view_based_acm_mib, vacmAccessTable, []}}.
+{vacmContextTable, {snmp_view_based_acm_mib, vacmContextTable, []}}.
+{vacmSecurityToGroupTable,
+ {snmp_view_based_acm_mib, vacmSecurityToGroupTable, []}}.
+{vacmViewSpinLock, {snmp_view_based_acm_mib, vacmViewSpinLock, []}}.
+{vacmViewTreeFamilyTable,
+ {snmp_view_based_acm_mib, vacmViewTreeFamilyTable, []}}.
diff --git a/lib/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.mib b/lib/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.mib
new file mode 100644
index 0000000000..fe0f0ce283
--- /dev/null
+++ b/lib/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.mib
@@ -0,0 +1,805 @@
+SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
+ MODULE-IDENTITY, OBJECT-TYPE,
+ snmpModules FROM SNMPv2-SMI
+ TestAndIncr,
+ RowStatus, StorageType FROM SNMPv2-TC
+ SnmpAdminString,
+ SnmpSecurityLevel,
+ SnmpSecurityModel FROM SNMP-FRAMEWORK-MIB;
+
+snmpVacmMIB MODULE-IDENTITY
+ LAST-UPDATED "9901200000Z" -- 20 Jan 1999, midnight
+ ORGANIZATION "SNMPv3 Working Group"
+ CONTACT-INFO "WG-email: [email protected]
+ Subscribe: [email protected]
+ In message body: subscribe snmpv3
+
+ Chair: Russ Mundy
+ Trusted Information Systems
+ postal: 3060 Washington Rd
+ Glenwood MD 21738
+ USA
+ phone: +1-301-854-6889
+
+ Co-editor: Bert Wijnen
+ IBM T.J. Watson Research
+ postal: Schagen 33
+ 3461 GL Linschoten
+ Netherlands
+ phone: +31-348-432-794
+
+ Co-editor: Randy Presuhn
+ BMC Software, Inc
+ postal: 965 Stewart Drive
+ Sunnyvale, CA 94086
+ USA
+ phone: +1-408-616-3100
+
+ Co-editor: Keith McCloghrie
+ Cisco Systems, Inc.
+ postal: 170 West Tasman Drive
+ San Jose, CA 95134-1706
+ USA
+ phone: +1-408-526-5260
+ "
+ DESCRIPTION "The management information definitions for the
+ View-based Access Control Model for SNMP.
+ "
+-- Revision history
+ REVISION "9901200000Z" -- 20 Jan 1999, midnight
+ -- RFC-Editor assigns RFCxxxx
+ DESCRIPTION "Clarifications, published as RFCxxxx"
+
+ REVISION "9711200000Z" -- 20 Nov 1997, midnight
+ DESCRIPTION "Initial version, published as RFC2275"
+
+ ::= { snmpModules 16 }
+
+-- Administrative assignments ****************************************
+
+vacmMIBObjects OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
+vacmMIBConformance OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }
+
+-- Information about Local Contexts **********************************
+
+vacmContextTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF VacmContextEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The table of locally available contexts.
+
+ This table provides information to SNMP Command
+ Generator applications so that they can properly
+ configure the vacmAccessTable to control access to
+ all contexts at the SNMP entity.
+
+ This table may change dynamically if the SNMP entity
+ allows that contexts are added/deleted dynamically
+ (for instance when its configuration changes). Such
+ changes would happen only if the management
+ instrumentation at that SNMP entity recognizes more
+ (or fewer) contexts.
+
+ The presence of entries in this table and of entries
+ in the vacmAccessTable are independent. That is, a
+ context identified by an entry in this table is not
+ necessarily referenced by any entries in the
+ vacmAccessTable; and the context(s) referenced by an
+ entry in the vacmAccessTable does not necessarily
+ currently exist and thus need not be identified by an
+ entry in this table.
+
+ This table must be made accessible via the default
+ context so that Command Responder applications have
+ a standard way of retrieving the information.
+
+ This table is read-only. It cannot be configured via
+ SNMP.
+ "
+ ::= { vacmMIBObjects 1 }
+
+vacmContextEntry OBJECT-TYPE
+ SYNTAX VacmContextEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Information about a particular context."
+ INDEX {
+ vacmContextName
+ }
+ ::= { vacmContextTable 1 }
+
+VacmContextEntry ::= SEQUENCE
+ {
+ vacmContextName SnmpAdminString
+ }
+
+vacmContextName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "A human readable name identifying a particular
+ context at a particular SNMP entity.
+
+ The empty contextName (zero length) represents the
+ default context.
+ "
+ ::= { vacmContextEntry 1 }
+
+-- Information about Groups ******************************************
+
+vacmSecurityToGroupTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF VacmSecurityToGroupEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This table maps a combination of securityModel and
+ securityName into a groupName which is used to define
+ an access control policy for a group of principals.
+ "
+ ::= { vacmMIBObjects 2 }
+
+vacmSecurityToGroupEntry OBJECT-TYPE
+ SYNTAX VacmSecurityToGroupEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An entry in this table maps the combination of a
+ securityModel and securityName into a groupName.
+ "
+ INDEX {
+ vacmSecurityModel,
+ vacmSecurityName
+ }
+ ::= { vacmSecurityToGroupTable 1 }
+
+VacmSecurityToGroupEntry ::= SEQUENCE
+ {
+ vacmSecurityModel SnmpSecurityModel,
+ vacmSecurityName SnmpAdminString,
+ vacmGroupName SnmpAdminString,
+ vacmSecurityToGroupStorageType StorageType,
+ vacmSecurityToGroupStatus RowStatus
+ }
+
+vacmSecurityModel OBJECT-TYPE
+ SYNTAX SnmpSecurityModel(1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The Security Model, by which the vacmSecurityName
+ referenced by this entry is provided.
+
+ Note, this object may not take the 'any' (0) value.
+ "
+ ::= { vacmSecurityToGroupEntry 1 }
+
+vacmSecurityName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The securityName for the principal, represented in a
+ Security Model independent format, which is mapped by
+ this entry to a groupName.
+ "
+ ::= { vacmSecurityToGroupEntry 2 }
+
+vacmGroupName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The name of the group to which this entry (e.g., the
+ combination of securityModel and securityName)
+ belongs.
+
+ This groupName is used as index into the
+ vacmAccessTable to select an access control policy.
+ However, a value in this table does not imply that an
+ instance with the value exists in table vacmAccesTable.
+ "
+ ::= { vacmSecurityToGroupEntry 3 }
+
+vacmSecurityToGroupStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row.
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row.
+ "
+ DEFVAL { nonVolatile }
+ ::= { vacmSecurityToGroupEntry 4 }
+
+vacmSecurityToGroupStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row.
+
+ Until instances of all corresponding columns are
+ appropriately configured, the value of the
+ corresponding instance of the vacmSecurityToGroupStatus
+ column is 'notReady'.
+
+ In particular, a newly created row cannot be made
+ active until a value has been set for vacmGroupName.
+
+ The RowStatus TC [RFC1903] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified.
+ "
+ ::= { vacmSecurityToGroupEntry 5 }
+
+-- Information about Access Rights ***********************************
+
+vacmAccessTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF VacmAccessEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The table of access rights for groups.
+
+ Each entry is indexed by a groupName, a contextPrefix,
+ a securityModel and a securityLevel. To determine
+ whether access is allowed, one entry from this table
+ needs to be selected and the proper viewName from that
+ entry must be used for access control checking.
+
+ To select the proper entry, follow these steps:
+
+ 1) the set of possible matches is formed by the
+ intersection of the following sets of entries:
+ the set of entries with identical vacmGroupName
+ the union of these two sets:
+ - the set with identical vacmAccessContextPrefix
+ - the set of entries with vacmAccessContextMatch
+ value of 'prefix' and matching
+ vacmAccessContextPrefix
+ intersected with the union of these two sets:
+ - the set of entries with identical
+ vacmSecurityModel
+ - the set of entries with vacmSecurityModel
+ value of 'any'
+ intersected with the set of entries with
+ vacmAccessSecurityLevel value less than or equal
+ to the requested securityLevel
+
+ 2) if this set has only one member, we're done
+ otherwise, it comes down to deciding how to weight
+ the preferences between ContextPrefixes,
+ SecurityModels, and SecurityLevels as follows:
+ a) if the subset of entries with securityModel
+ matching the securityModel in the message is
+ not empty, then discard the rest.
+ b) if the subset of entries with
+ vacmAccessContextPrefix matching the contextName
+ in the message is not empty,
+ then discard the rest
+ c) discard all entries with ContextPrefixes shorter
+ than the longest one remaining in the set
+ d) select the entry with the highest securityLevel
+
+ Please note that for securityLevel noAuthNoPriv, all
+ groups are really equivalent since the assumption that
+ the securityName has been authenticated does not hold.
+ "
+ ::= { vacmMIBObjects 4 }
+
+vacmAccessEntry OBJECT-TYPE
+ SYNTAX VacmAccessEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "An access right configured in the Local Configuration
+ Datastore (LCD) authorizing access to an SNMP context.
+
+ Entries in this table can use an instance value for
+ object vacmGroupName even if no entry in table
+ vacmAccessSecurityToGroupTable has a corresponding
+ value for object vacmGroupName.
+ "
+ INDEX { vacmGroupName,
+ vacmAccessContextPrefix,
+ vacmAccessSecurityModel,
+ vacmAccessSecurityLevel
+ }
+ ::= { vacmAccessTable 1 }
+
+VacmAccessEntry ::= SEQUENCE
+ {
+ vacmAccessContextPrefix SnmpAdminString,
+ vacmAccessSecurityModel SnmpSecurityModel,
+ vacmAccessSecurityLevel SnmpSecurityLevel,
+ vacmAccessContextMatch INTEGER,
+ vacmAccessReadViewName SnmpAdminString,
+ vacmAccessWriteViewName SnmpAdminString,
+ vacmAccessNotifyViewName SnmpAdminString,
+ vacmAccessStorageType StorageType,
+ vacmAccessStatus RowStatus
+ }
+
+vacmAccessContextPrefix OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "In order to gain the access rights allowed by this
+ conceptual row, a contextName must match exactly
+ (if the value of vacmAccessContextMatch is 'exact')
+ or partially (if the value of vacmAccessContextMatch
+ is 'prefix') to the value of the instance of this
+ object.
+ "
+ ::= { vacmAccessEntry 1 }
+
+vacmAccessSecurityModel OBJECT-TYPE
+ SYNTAX SnmpSecurityModel
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "In order to gain the access rights allowed by this
+ conceptual row, this securityModel must be in use.
+ "
+ ::= { vacmAccessEntry 2 }
+
+vacmAccessSecurityLevel OBJECT-TYPE
+ SYNTAX SnmpSecurityLevel
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The minimum level of security required in order to
+ gain the access rights allowed by this conceptual
+ row. A securityLevel of noAuthNoPriv is less than
+ authNoPriv which in turn is less than authPriv.
+
+ If multiple entries are equally indexed except for
+ this vacmAccessSecurityLevel index, then the entry
+ which has the highest value for
+ vacmAccessSecurityLevel is selected.
+ "
+ ::= { vacmAccessEntry 3 }
+
+vacmAccessContextMatch OBJECT-TYPE
+ SYNTAX INTEGER
+ { exact (1), -- exact match of prefix and contextName
+ prefix (2) -- Only match to the prefix
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "If the value of this object is exact(1), then all
+ rows where the contextName exactly matches
+ vacmAccessContextPrefix are selected.
+
+ If the value of this object is prefix(2), then all
+ rows where the contextName whose starting octets
+ exactly match vacmAccessContextPrefix are selected.
+ This allows for a simple form of wildcarding.
+ "
+ DEFVAL { exact }
+ ::= { vacmAccessEntry 4 }
+
+vacmAccessReadViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The value of an instance of this object identifies
+ the MIB view of the SNMP context to which this
+ conceptual row authorizes read access.
+
+ The identified MIB view is that one for which the
+ vacmViewTreeFamilyViewName has the same value as the
+ instance of this object; if the value is the empty
+ string or if there is no active MIB view having this
+ value of vacmViewTreeFamilyViewName, then no access
+ is granted.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { vacmAccessEntry 5 }
+
+vacmAccessWriteViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The value of an instance of this object identifies
+ the MIB view of the SNMP context to which this
+ conceptual row authorizes write access.
+
+ The identified MIB view is that one for which the
+ vacmViewTreeFamilyViewName has the same value as the
+ instance of this object; if the value is the empty
+ string or if there is no active MIB view having this
+ value of vacmViewTreeFamilyViewName, then no access
+ is granted.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { vacmAccessEntry 6 }
+
+vacmAccessNotifyViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(0..32))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The value of an instance of this object identifies
+ the MIB view of the SNMP context to which this
+ conceptual row authorizes access for notifications.
+
+ The identified MIB view is that one for which the
+ vacmViewTreeFamilyViewName has the same value as the
+ instance of this object; if the value is the empty
+ string or if there is no active MIB view having this
+ value of vacmViewTreeFamilyViewName, then no access
+ is granted.
+ "
+ DEFVAL { ''H } -- the empty string
+ ::= { vacmAccessEntry 7 }
+
+vacmAccessStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row.
+
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row.
+ "
+ DEFVAL { nonVolatile }
+ ::= { vacmAccessEntry 8 }
+
+vacmAccessStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row.
+
+ The RowStatus TC [RFC1903] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified.
+ "
+ ::= { vacmAccessEntry 9 }
+
+-- Information about MIB views ***************************************
+
+-- Support for instance-level granularity is optional.
+--
+-- In some implementations, instance-level access control
+-- granularity may come at a high performance cost. Managers
+-- should avoid requesting such configurations unnecessarily.
+
+vacmMIBViews OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }
+
+vacmViewSpinLock OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION "An advisory lock used to allow cooperating SNMP
+ Command Generator applications to coordinate their
+ use of the Set operation in creating or modifying
+ views.
+
+ When creating a new view or altering an existing
+ view, it is important to understand the potential
+ interactions with other uses of the view. The
+ vacmViewSpinLock should be retrieved. The name of
+ the view to be created should be determined to be
+ unique by the SNMP Command Generator application by
+ consulting the vacmViewTreeFamilyTable. Finally,
+ the named view may be created (Set), including the
+ advisory lock.
+ If another SNMP Command Generator application has
+ altered the views in the meantime, then the spin
+ lock's value will have changed, and so this creation
+ will fail because it will specify the wrong value for
+ the spin lock.
+
+ Since this is an advisory lock, the use of this lock
+ is not enforced.
+ "
+ ::= { vacmMIBViews 1 }
+
+vacmViewTreeFamilyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF VacmViewTreeFamilyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Locally held information about families of subtrees
+ within MIB views.
+
+ Each MIB view is defined by two sets of view subtrees:
+ - the included view subtrees, and
+ - the excluded view subtrees.
+ Every such view subtree, both the included and the
+ excluded ones, is defined in this table.
+
+ To determine if a particular object instance is in
+ a particular MIB view, compare the object instance's
+ OBJECT IDENTIFIER with each of the MIB view's active
+ entries in this table. If none match, then the
+ object instance is not in the MIB view. If one or
+ more match, then the object instance is included in,
+ or excluded from, the MIB view according to the
+ value of vacmViewTreeFamilyType in the entry whose
+ value of vacmViewTreeFamilySubtree has the most
+ sub-identifiers. If multiple entries match and have
+ the same number of sub-identifiers (when wildcarding
+ is specified with the value of vacmViewTreeFamilyMask),
+ then the lexicographically greatest instance of
+ vacmViewTreeFamilyType determines the inclusion or
+ exclusion.
+
+ An object instance's OBJECT IDENTIFIER X matches an
+ active entry in this table when the number of
+ sub-identifiers in X is at least as many as in the
+ value of vacmViewTreeFamilySubtree for the entry,
+ and each sub-identifier in the value of
+ vacmViewTreeFamilySubtree matches its corresponding
+ sub-identifier in X. Two sub-identifiers match
+ either if the corresponding bit of the value of
+ vacmViewTreeFamilyMask for the entry is zero (the
+ 'wild card' value), or if they are equal.
+
+ A 'family' of subtrees is the set of subtrees defined
+ by a particular combination of values of
+ vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
+ In the case where no 'wild card' is defined in the
+ vacmViewTreeFamilyMask, the family of subtrees reduces
+ to a single subtree.
+
+ When creating or changing MIB views, an SNMP Command
+ Generator application should utilize the
+ vacmViewSpinLock to try to avoid collisions. See
+ DESCRIPTION clause of vacmViewSpinLock.
+
+ When creating MIB views, it is strongly advised that
+ first the 'excluded' vacmViewTreeFamilyEntries are
+ created and then the 'included' entries.
+
+ When deleting MIB views, it is strongly advised that
+ first the 'included' vacmViewTreeFamilyEntries are
+ deleted and then the 'excluded' entries.
+
+ If a create for an entry for instance-level access
+ control is received and the implementation does not
+ support instance-level granularity, then an
+ inconsistentName error must be returned.
+ "
+ ::= { vacmMIBViews 2 }
+
+vacmViewTreeFamilyEntry OBJECT-TYPE
+ SYNTAX VacmViewTreeFamilyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "Information on a particular family of view subtrees
+ included in or excluded from a particular SNMP
+ context's MIB view.
+
+ Implementations must not restrict the number of
+ families of view subtrees for a given MIB view,
+ except as dictated by resource constraints on the
+ overall number of entries in the
+ vacmViewTreeFamilyTable.
+
+ If no conceptual rows exist in this table for a given
+ MIB view (viewName), that view may be thought of as
+ consisting of the empty set of view subtrees.
+ "
+ INDEX { vacmViewTreeFamilyViewName,
+ vacmViewTreeFamilySubtree
+ }
+ ::= { vacmViewTreeFamilyTable 1 }
+
+VacmViewTreeFamilyEntry ::= SEQUENCE
+ {
+ vacmViewTreeFamilyViewName SnmpAdminString,
+ vacmViewTreeFamilySubtree OBJECT IDENTIFIER,
+ vacmViewTreeFamilyMask OCTET STRING,
+ vacmViewTreeFamilyType INTEGER,
+ vacmViewTreeFamilyStorageType StorageType,
+ vacmViewTreeFamilyStatus RowStatus
+ }
+
+vacmViewTreeFamilyViewName OBJECT-TYPE
+ SYNTAX SnmpAdminString (SIZE(1..32))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The human readable name for a family of view subtrees.
+ "
+ ::= { vacmViewTreeFamilyEntry 1 }
+
+vacmViewTreeFamilySubtree OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "The MIB subtree which when combined with the
+ corresponding instance of vacmViewTreeFamilyMask
+ defines a family of view subtrees.
+ "
+ ::= { vacmViewTreeFamilyEntry 2 }
+
+vacmViewTreeFamilyMask OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (0..16))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The bit mask which, in combination with the
+ corresponding instance of vacmViewTreeFamilySubtree,
+ defines a family of view subtrees.
+
+ Each bit of this bit mask corresponds to a
+ sub-identifier of vacmViewTreeFamilySubtree, with the
+ most significant bit of the i-th octet of this octet
+ string value (extended if necessary, see below)
+ corresponding to the (8*i - 7)-th sub-identifier, and
+ the least significant bit of the i-th octet of this
+ octet string corresponding to the (8*i)-th
+ sub-identifier, where i is in the range 1 through 16.
+
+ Each bit of this bit mask specifies whether or not
+ the corresponding sub-identifiers must match when
+ determining if an OBJECT IDENTIFIER is in this
+ family of view subtrees; a '1' indicates that an
+ exact match must occur; a '0' indicates 'wild card',
+ i.e., any sub-identifier value matches.
+
+ Thus, the OBJECT IDENTIFIER X of an object instance
+ is contained in a family of view subtrees if, for
+ each sub-identifier of the value of
+ vacmViewTreeFamilySubtree, either:
+
+ the i-th bit of vacmViewTreeFamilyMask is 0, or
+
+ the i-th sub-identifier of X is equal to the i-th
+ sub-identifier of the value of
+ vacmViewTreeFamilySubtree.
+
+ If the value of this bit mask is M bits long and
+ there are more than M sub-identifiers in the
+ corresponding instance of vacmViewTreeFamilySubtree,
+ then the bit mask is extended with 1's to be the
+ required length.
+
+ Note that when the value of this object is the
+ zero-length string, this extension rule results in
+ a mask of all-1's being used (i.e., no 'wild card'),
+ and the family of view subtrees is the one view
+ subtree uniquely identified by the corresponding
+ instance of vacmViewTreeFamilySubtree.
+
+ Note that masks of length greater than zero length
+ do not need to be supported. In this case this
+ object is made read-only.
+ "
+ DEFVAL { ''H }
+ ::= { vacmViewTreeFamilyEntry 3 }
+
+vacmViewTreeFamilyType OBJECT-TYPE
+ SYNTAX INTEGER { included(1), excluded(2) }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "Indicates whether the corresponding instances of
+ vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
+ define a family of view subtrees which is included in
+ or excluded from the MIB view.
+ "
+ DEFVAL { included }
+ ::= { vacmViewTreeFamilyEntry 4 }
+
+vacmViewTreeFamilyStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The storage type for this conceptual row.
+
+ Conceptual rows having the value 'permanent' need not
+ allow write-access to any columnar objects in the row.
+ "
+ DEFVAL { nonVolatile }
+ ::= { vacmViewTreeFamilyEntry 5 }
+
+vacmViewTreeFamilyStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION "The status of this conceptual row.
+
+ The RowStatus TC [RFC1903] requires that this
+ DESCRIPTION clause states under which circumstances
+ other objects in this row can be modified:
+
+ The value of this object has no effect on whether
+ other objects in this conceptual row can be modified.
+ "
+ ::= { vacmViewTreeFamilyEntry 6 }
+
+-- Conformance information *******************************************
+
+vacmMIBCompliances OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
+vacmMIBGroups OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }
+
+-- Compliance statements *********************************************
+
+vacmMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION "The compliance statement for SNMP engines which
+ implement the SNMP View-based Access Control Model
+ configuration MIB.
+ "
+ MODULE -- this module
+ MANDATORY-GROUPS { vacmBasicGroup }
+
+ OBJECT vacmAccessContextMatch
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessReadViewName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessWriteViewName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessNotifyViewName
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmAccessStatus
+ MIN-ACCESS read-only
+ DESCRIPTION "Create/delete/modify access to the
+ vacmAccessTable is not required.
+ "
+
+ OBJECT vacmViewTreeFamilyMask
+ WRITE-SYNTAX OCTET STRING (SIZE (0))
+ MIN-ACCESS read-only
+ DESCRIPTION "Support for configuration via SNMP of subtree
+ families using wild-cards is not required.
+ "
+
+ OBJECT vacmViewTreeFamilyType
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmViewTreeFamilyStorageType
+ MIN-ACCESS read-only
+ DESCRIPTION "Write access is not required."
+
+ OBJECT vacmViewTreeFamilyStatus
+ MIN-ACCESS read-only
+ DESCRIPTION "Create/delete/modify access to the
+ vacmViewTreeFamilyTable is not required.
+ "
+ ::= { vacmMIBCompliances 1 }
+
+-- Units of conformance **********************************************
+
+vacmBasicGroup OBJECT-GROUP
+ OBJECTS {
+ vacmContextName,
+ vacmGroupName,
+ vacmSecurityToGroupStorageType,
+ vacmSecurityToGroupStatus,
+ vacmAccessContextMatch,
+ vacmAccessReadViewName,
+ vacmAccessWriteViewName,
+ vacmAccessNotifyViewName,
+ vacmAccessStorageType,
+ vacmAccessStatus,
+ vacmViewSpinLock,
+ vacmViewTreeFamilyMask,
+ vacmViewTreeFamilyType,
+ vacmViewTreeFamilyStorageType,
+ vacmViewTreeFamilyStatus
+ }
+ STATUS current
+ DESCRIPTION "A collection of objects providing for remote
+ configuration of an SNMP engine which implements
+ the SNMP View-based Access Control Model.
+ "
+ ::= { vacmMIBGroups 1 }
+
+END
diff --git a/lib/snmp/mibs/SNMPv2-CONF.mib b/lib/snmp/mibs/SNMPv2-CONF.mib
new file mode 100644
index 0000000000..1bff73ca68
--- /dev/null
+++ b/lib/snmp/mibs/SNMPv2-CONF.mib
@@ -0,0 +1,290 @@
+SNMPv2-CONF DEFINITIONS ::= BEGIN
+
+-- definitions for conformance groups
+
+OBJECT-GROUP MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ ObjectsPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ ObjectsPart ::=
+ "OBJECTS" "{" Objects "}"
+ Objects ::=
+ Object
+ | Objects "," Object
+ Object ::=
+ value(Name ObjectName)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- uses the NVT ASCII character set
+ Text ::= """" string """"
+END
+
+
+-- more definitions for conformance groups
+
+NOTIFICATION-GROUP MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ NotificationsPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ NotificationsPart ::=
+ "NOTIFICATIONS" "{" Notifications "}"
+ Notifications ::=
+ Notification
+ | Notifications "," Notification
+ Notification ::=
+ value(Name NotificationName)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- uses the NVT ASCII character set
+ Text ::= """" string """"
+
+END
+
+
+-- definitions for compliance statements
+
+MODULE-COMPLIANCE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ ModulePart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ ModulePart ::=
+ Modules
+ | empty
+ Modules ::=
+ Module
+ | Modules Module
+ Module ::=
+ -- name of module --
+ "MODULE" ModuleName
+ MandatoryPart
+ CompliancePart
+
+ ModuleName ::=
+ modulereference ModuleIdentifier
+ -- must not be empty unless contained
+ -- in MIB Module
+ | empty
+ ModuleIdentifier ::=
+ value(ModuleID OBJECT IDENTIFIER)
+ | empty
+
+ MandatoryPart ::=
+ "MANDATORY-GROUPS" "{" Groups "}"
+ | empty
+
+ Groups ::=
+ Group
+ | Groups "," Group
+ Group ::=
+ value(Group OBJECT IDENTIFIER)
+
+ CompliancePart ::=
+ Compliances
+ | empty
+
+ Compliances ::=
+ Compliance
+ | Compliances Compliance
+ Compliance ::=
+ ComplianceGroup
+ | Object
+
+ ComplianceGroup ::=
+ "GROUP" value(Name OBJECT IDENTIFIER)
+ "DESCRIPTION" Text
+
+ Object ::=
+ "OBJECT" value(Name ObjectName)
+ SyntaxPart
+ WriteSyntaxPart
+ AccessPart
+ "DESCRIPTION" Text
+
+ -- must be a refinement for object's SYNTAX clause
+ SyntaxPart ::=
+ "SYNTAX" type(SYNTAX)
+ | empty
+
+ -- must be a refinement for object's SYNTAX clause
+ WriteSyntaxPart ::=
+ "WRITE-SYNTAX" type(WriteSYNTAX)
+ | empty
+
+ AccessPart ::=
+ "MIN-ACCESS" Access
+ | empty
+ Access ::=
+ "not-accessible"
+ | "accessible-for-notify"
+ | "read-only"
+ | "read-write"
+ | "read-create"
+
+ -- uses the NVT ASCII character set
+ Text ::= """" string """"
+END
+
+
+-- definitions for capabilities statements
+
+AGENT-CAPABILITIES MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "PRODUCT-RELEASE" Text
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ ModulePart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ Status ::=
+ "current"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ ModulePart ::=
+ Modules
+ | empty
+ Modules ::=
+ Module
+ | Modules Module
+ Module ::=
+ -- name of module --
+ "SUPPORTS" ModuleName
+ "INCLUDES" "{" Groups "}"
+ VariationPart
+
+ ModuleName ::=
+ identifier ModuleIdentifier
+ ModuleIdentifier ::=
+ value(ModuleID OBJECT IDENTIFIER)
+ | empty
+
+ Groups ::=
+ Group
+ | Groups "," Group
+ Group ::=
+ value(Name OBJECT IDENTIFIER)
+
+ VariationPart ::=
+ Variations
+ | empty
+ Variations ::=
+ Variation
+ | Variations Variation
+
+ Variation ::=
+ ObjectVariation
+ | NotificationVariation
+
+ NotificationVariation ::=
+ "VARIATION" value(Name NotificationName)
+ AccessPart
+ "DESCRIPTION" Text
+
+ ObjectVariation ::=
+ "VARIATION" value(Name ObjectName)
+ SyntaxPart
+ WriteSyntaxPart
+ AccessPart
+ CreationPart
+ DefValPart
+ "DESCRIPTION" Text
+
+ -- must be a refinement for object's SYNTAX clause
+ SyntaxPart ::=
+ "SYNTAX" type(SYNTAX)
+ | empty
+
+ -- must be a refinement for object's SYNTAX clause
+ WriteSyntaxPart ::=
+ "WRITE-SYNTAX" type(WriteSYNTAX)
+ | empty
+
+ AccessPart ::=
+ "ACCESS" Access
+ | empty
+
+ Access ::=
+ "not-implemented"
+ -- only "not-implemented" for notifications
+ | "accessible-for-notify"
+ | "read-only"
+ | "read-write"
+ | "read-create"
+ -- following is for backward-compatibility only
+ | "write-only"
+
+ CreationPart ::=
+ "CREATION-REQUIRES" "{" Cells "}"
+ | empty
+
+ Cells ::=
+ Cell
+ | Cells "," Cell
+
+ Cell ::=
+ value(Cell ObjectName)
+
+ DefValPart ::=
+ "DEFVAL" "{" value(Defval ObjectSyntax) "}"
+ | empty
+
+ -- uses the NVT ASCII character set
+ Text ::= """" string """"
+END
+
+
+END
+
diff --git a/lib/snmp/mibs/SNMPv2-MIB.funcs b/lib/snmp/mibs/SNMPv2-MIB.funcs
new file mode 100644
index 0000000000..8fe25bb477
--- /dev/null
+++ b/lib/snmp/mibs/SNMPv2-MIB.funcs
@@ -0,0 +1,28 @@
+%% The system group
+{sysUpTime, {snmp_standard_mib, sys_up_time, []}}.
+{sysDescr, {snmp_generic, variable_func, [{sysDescr, permanent}]}}.
+{sysObjectID, {snmp_generic, variable_func, [{sysObjectID, permanent}]}}.
+{sysContact, {snmp_generic, variable_func, [{sysContact, permanent}]}}.
+{sysName, {snmp_generic, variable_func, [{sysName, permanent}]}}.
+{sysLocation, {snmp_generic, variable_func, [{sysLocation, permanent}]}}.
+{sysServices, {snmp_generic, variable_func, [{sysServices, permanent}]}}.
+
+{sysORLastChange, {snmp_generic, variable_func, [{sysORLastChange, volatile}]}}.
+{sysORTable, {snmp_standard_mib, sys_or_table, []}}.
+
+%% Snmp special objects
+{snmpEnableAuthenTraps, {snmp_standard_mib, snmp_enable_authen_traps, []}}.
+{snmpSetSerialNo, {snmp_standard_mib, snmp_set_serial_no, []}}.
+
+%% Counters
+{snmpInPkts, {snmp_standard_mib, variable_func, [snmpInPkts]}}.
+{snmpInBadVersions, {snmp_standard_mib, variable_func, [snmpInBadVersions]}}.
+{snmpInBadCommunityNames, {snmp_standard_mib, variable_func, [snmpInBadCommunityNames]}}.
+{snmpInBadCommunityUses, {snmp_standard_mib, variable_func, [snmpInBadCommunityUses]}}.
+{snmpInASNParseErrs, {snmp_standard_mib, variable_func, [snmpInASNParseErrs]}}.
+{snmpProxyDrops, {snmp_standard_mib, variable_func, [snmpProxyDrops]}}.
+{snmpSilentDrops, {snmp_standard_mib, variable_func, [snmpSilentDrops]}}.
+
+%% Dummy objects, included in notifications
+{snmpTrapEnterprise, {snmp_standard_mib, dummy, []}}.
+{snmpTrapOID, {snmp_standard_mib, dummy, []}}.
diff --git a/lib/snmp/mibs/SNMPv2-MIB.mib b/lib/snmp/mibs/SNMPv2-MIB.mib
new file mode 100644
index 0000000000..8c828305e0
--- /dev/null
+++ b/lib/snmp/mibs/SNMPv2-MIB.mib
@@ -0,0 +1,854 @@
+SNMPv2-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
+ TimeTicks, Counter32, snmpModules, mib-2
+ FROM SNMPv2-SMI
+ DisplayString, TestAndIncr, TimeStamp
+
+ FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
+ FROM SNMPv2-CONF;
+
+snmpMIB MODULE-IDENTITY
+ LAST-UPDATED "200210160000Z"
+ ORGANIZATION "IETF SNMPv3 Working Group"
+ CONTACT-INFO
+ "WG-EMail: [email protected]
+ Subscribe: [email protected]
+
+ Co-Chair: Russ Mundy
+ Network Associates Laboratories
+ postal: 15204 Omega Drive, Suite 300
+ Rockville, MD 20850-4601
+ USA
+ phone: +1 301 947-7107
+
+ Co-Chair: David Harrington
+ Enterasys Networks
+ postal: 35 Industrial Way
+ P. O. Box 5005
+ Rochester, NH 03866-5005
+ USA
+ phone: +1 603 337-2614
+
+ Editor: Randy Presuhn
+ BMC Software, Inc.
+ postal: 2141 North First Street
+ San Jose, CA 95131
+ USA
+ phone: +1 408 546-1006"
+ DESCRIPTION
+ "The MIB module for SNMP entities.
+
+ Copyright (C) The Internet Society (2002). This
+ version of this MIB module is part of RFC 3418;
+ see the RFC itself for full legal notices.
+ "
+ REVISION "200210160000Z"
+ DESCRIPTION
+ "This revision of this MIB module was published as
+ RFC 3418."
+ REVISION "199511090000Z"
+ DESCRIPTION
+ "This revision of this MIB module was published as
+ RFC 1907."
+ REVISION "199304010000Z"
+ DESCRIPTION
+ "The initial revision of this MIB module was published
+ as RFC 1450."
+ ::= { snmpModules 1 }
+
+snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 }
+
+-- ::= { snmpMIBObjects 1 } this OID is obsolete
+-- ::= { snmpMIBObjects 2 } this OID is obsolete
+-- ::= { snmpMIBObjects 3 } this OID is obsolete
+
+-- the System group
+--
+-- a collection of objects common to all managed systems.
+
+system OBJECT IDENTIFIER ::= { mib-2 1 }
+
+sysDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of the entity. This value should
+ include the full name and version identification of
+ the system's hardware type, software operating-system,
+ and networking software."
+ ::= { system 1 }
+
+sysObjectID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The vendor's authoritative identification of the
+ network management subsystem contained in the entity.
+ This value is allocated within the SMI enterprises
+ subtree (1.3.6.1.4.1) and provides an easy and
+ unambiguous means for determining `what kind of box' is
+ being managed. For example, if vendor `Flintstones,
+ Inc.' was assigned the subtree 1.3.6.1.4.1.424242,
+ it could assign the identifier 1.3.6.1.4.1.424242.1.1
+ to its `Fred Router'."
+ ::= { system 2 }
+
+sysUpTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The time (in hundredths of a second) since the
+ network management portion of the system was last
+ re-initialized."
+ ::= { system 3 }
+
+sysContact OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The textual identification of the contact person for
+ this managed node, together with information on how
+ to contact this person. If no contact information is
+ known, the value is the zero-length string."
+ ::= { system 4 }
+
+sysName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "An administratively-assigned name for this managed
+ node. By convention, this is the node's fully-qualified
+ domain name. If the name is unknown, the value is
+ the zero-length string."
+ ::= { system 5 }
+
+sysLocation OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The physical location of this node (e.g., 'telephone
+ closet, 3rd floor'). If the location is unknown, the
+ value is the zero-length string."
+ ::= { system 6 }
+
+sysServices OBJECT-TYPE
+ SYNTAX INTEGER (0..127)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A value which indicates the set of services that this
+ entity may potentially offer. The value is a sum.
+
+ This sum initially takes the value zero. Then, for
+ each layer, L, in the range 1 through 7, that this node
+ performs transactions for, 2 raised to (L - 1) is added
+ to the sum. For example, a node which performs only
+ routing functions would have a value of 4 (2^(3-1)).
+ In contrast, a node which is a host offering application
+ services would have a value of 72 (2^(4-1) + 2^(7-1)).
+ Note that in the context of the Internet suite of
+ protocols, values should be calculated accordingly:
+
+ layer functionality
+ 1 physical (e.g., repeaters)
+ 2 datalink/subnetwork (e.g., bridges)
+ 3 internet (e.g., supports the IP)
+ 4 end-to-end (e.g., supports the TCP)
+ 7 applications (e.g., supports the SMTP)
+
+ For systems including OSI protocols, layers 5 and 6
+ may also be counted."
+ ::= { system 7 }
+
+-- object resource information
+--
+-- a collection of objects which describe the SNMP entity's
+-- (statically and dynamically configurable) support of
+-- various MIB modules.
+
+sysORLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time of the most recent
+ change in state or value of any instance of sysORID."
+ ::= { system 8 }
+
+sysORTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SysOREntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The (conceptual) table listing the capabilities of
+ the local SNMP application acting as a command
+ responder with respect to various MIB modules.
+ SNMP entities having dynamically-configurable support
+ of MIB modules will have a dynamically-varying number
+ of conceptual rows."
+ ::= { system 9 }
+
+sysOREntry OBJECT-TYPE
+ SYNTAX SysOREntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry (conceptual row) in the sysORTable."
+ INDEX { sysORIndex }
+ ::= { sysORTable 1 }
+
+SysOREntry ::= SEQUENCE {
+ sysORIndex INTEGER,
+ sysORID OBJECT IDENTIFIER,
+ sysORDescr DisplayString,
+ sysORUpTime TimeStamp
+}
+
+sysORIndex OBJECT-TYPE
+ SYNTAX INTEGER (1..2147483647)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The auxiliary variable used for identifying instances
+ of the columnar objects in the sysORTable."
+ ::= { sysOREntry 1 }
+
+sysORID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An authoritative identification of a capabilities
+ statement with respect to various MIB modules supported
+ by the local SNMP application acting as a command
+ responder."
+ ::= { sysOREntry 2 }
+
+sysORDescr OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A textual description of the capabilities identified
+ by the corresponding instance of sysORID."
+ ::= { sysOREntry 3 }
+
+sysORUpTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime at the time this conceptual
+ row was last instantiated."
+ ::= { sysOREntry 4 }
+
+-- the SNMP group
+--
+-- a collection of objects providing basic instrumentation and
+-- control of an SNMP entity.
+
+snmp OBJECT IDENTIFIER ::= { mib-2 11 }
+
+snmpInPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of messages delivered to the SNMP
+ entity from the transport service."
+ ::= { snmp 1 }
+
+snmpInBadVersions OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of SNMP messages which were delivered
+ to the SNMP entity and were for an unsupported SNMP
+ version."
+ ::= { snmp 3 }
+
+snmpInBadCommunityNames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of community-based SNMP messages (for
+ example, SNMPv1) delivered to the SNMP entity which
+ used an SNMP community name not known to said entity.
+ Also, implementations which authenticate community-based
+ SNMP messages using check(s) in addition to matching
+ the community name (for example, by also checking
+ whether the message originated from a transport address
+ allowed to use a specified community name) MAY include
+ in this value the number of messages which failed the
+ additional check(s). It is strongly RECOMMENDED that
+
+ the documentation for any security model which is used
+ to authenticate community-based SNMP messages specify
+ the precise conditions that contribute to this value."
+ ::= { snmp 4 }
+
+snmpInBadCommunityUses OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of community-based SNMP messages (for
+ example, SNMPv1) delivered to the SNMP entity which
+ represented an SNMP operation that was not allowed for
+ the SNMP community named in the message. The precise
+ conditions under which this counter is incremented
+ (if at all) depend on how the SNMP entity implements
+ its access control mechanism and how its applications
+ interact with that access control mechanism. It is
+ strongly RECOMMENDED that the documentation for any
+ access control mechanism which is used to control access
+ to and visibility of MIB instrumentation specify the
+ precise conditions that contribute to this value."
+ ::= { snmp 5 }
+
+snmpInASNParseErrs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of ASN.1 or BER errors encountered by
+ the SNMP entity when decoding received SNMP messages."
+ ::= { snmp 6 }
+
+snmpEnableAuthenTraps OBJECT-TYPE
+ SYNTAX INTEGER { enabled(1), disabled(2) }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Indicates whether the SNMP entity is permitted to
+ generate authenticationFailure traps. The value of this
+ object overrides any configuration information; as such,
+ it provides a means whereby all authenticationFailure
+ traps may be disabled.
+
+ Note that it is strongly recommended that this object
+ be stored in non-volatile memory so that it remains
+ constant across re-initializations of the network
+ management system."
+ ::= { snmp 30 }
+
+snmpSilentDrops OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of Confirmed Class PDUs (such as
+ GetRequest-PDUs, GetNextRequest-PDUs,
+ GetBulkRequest-PDUs, SetRequest-PDUs, and
+ InformRequest-PDUs) delivered to the SNMP entity which
+ were silently dropped because the size of a reply
+ containing an alternate Response Class PDU (such as a
+ Response-PDU) with an empty variable-bindings field
+ was greater than either a local constraint or the
+ maximum message size associated with the originator of
+ the request."
+ ::= { snmp 31 }
+
+snmpProxyDrops OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of Confirmed Class PDUs
+ (such as GetRequest-PDUs, GetNextRequest-PDUs,
+ GetBulkRequest-PDUs, SetRequest-PDUs, and
+ InformRequest-PDUs) delivered to the SNMP entity which
+ were silently dropped because the transmission of
+ the (possibly translated) message to a proxy target
+ failed in a manner (other than a time-out) such that
+ no Response Class PDU (such as a Response-PDU) could
+ be returned."
+ ::= { snmp 32 }
+
+-- information for notifications
+--
+-- a collection of objects which allow the SNMP entity, when
+-- supporting a notification originator application,
+-- to be configured to generate SNMPv2-Trap-PDUs.
+
+snmpTrap OBJECT IDENTIFIER ::= { snmpMIBObjects 4 }
+
+snmpTrapOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The authoritative identification of the notification
+ currently being sent. This variable occurs as
+ the second varbind in every SNMPv2-Trap-PDU and
+ InformRequest-PDU."
+ ::= { snmpTrap 1 }
+
+-- ::= { snmpTrap 2 } this OID is obsolete
+
+snmpTrapEnterprise OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS accessible-for-notify
+ STATUS current
+ DESCRIPTION
+ "The authoritative identification of the enterprise
+ associated with the trap currently being sent. When an
+ SNMP proxy agent is mapping an RFC1157 Trap-PDU
+ into a SNMPv2-Trap-PDU, this variable occurs as the
+ last varbind."
+ ::= { snmpTrap 3 }
+
+-- ::= { snmpTrap 4 } this OID is obsolete
+
+-- well-known traps
+
+snmpTraps OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }
+
+coldStart NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "A coldStart trap signifies that the SNMP entity,
+ supporting a notification originator application, is
+ reinitializing itself and that its configuration may
+ have been altered."
+ ::= { snmpTraps 1 }
+
+warmStart NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "A warmStart trap signifies that the SNMP entity,
+ supporting a notification originator application,
+ is reinitializing itself such that its configuration
+ is unaltered."
+ ::= { snmpTraps 2 }
+
+-- Note the linkDown NOTIFICATION-TYPE ::= { snmpTraps 3 }
+-- and the linkUp NOTIFICATION-TYPE ::= { snmpTraps 4 }
+-- are defined in RFC 2863 [RFC2863]
+
+authenticationFailure NOTIFICATION-TYPE
+ STATUS current
+ DESCRIPTION
+ "An authenticationFailure trap signifies that the SNMP
+ entity has received a protocol message that is not
+ properly authenticated. While all implementations
+ of SNMP entities MAY be capable of generating this
+ trap, the snmpEnableAuthenTraps object indicates
+ whether this trap will be generated."
+ ::= { snmpTraps 5 }
+
+-- Note the egpNeighborLoss notification is defined
+-- as { snmpTraps 6 } in RFC 1213
+
+-- the set group
+--
+-- a collection of objects which allow several cooperating
+-- command generator applications to coordinate their use of the
+-- set operation.
+
+snmpSet OBJECT IDENTIFIER ::= { snmpMIBObjects 6 }
+
+snmpSetSerialNo OBJECT-TYPE
+ SYNTAX TestAndIncr
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "An advisory lock used to allow several cooperating
+ command generator applications to coordinate their
+ use of the SNMP set operation.
+
+ This object is used for coarse-grain coordination.
+ To achieve fine-grain coordination, one or more similar
+ objects might be defined within each MIB group, as
+ appropriate."
+ ::= { snmpSet 1 }
+
+-- conformance information
+
+snmpMIBConformance
+ OBJECT IDENTIFIER ::= { snmpMIB 2 }
+
+snmpMIBCompliances
+ OBJECT IDENTIFIER ::= { snmpMIBConformance 1 }
+snmpMIBGroups OBJECT IDENTIFIER ::= { snmpMIBConformance 2 }
+
+-- compliance statements
+
+-- ::= { snmpMIBCompliances 1 } this OID is obsolete
+snmpBasicCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for SNMPv2 entities which
+ implement the SNMPv2 MIB.
+
+ This compliance statement is replaced by
+ snmpBasicComplianceRev2."
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup,
+ snmpBasicNotificationsGroup }
+
+ GROUP snmpCommunityGroup
+ DESCRIPTION
+ "This group is mandatory for SNMPv2 entities which
+ support community-based authentication."
+ ::= { snmpMIBCompliances 2 }
+
+snmpBasicComplianceRev2 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for SNMP entities which
+ implement this MIB module."
+ MODULE -- this module
+ MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup,
+ snmpBasicNotificationsGroup }
+
+ GROUP snmpCommunityGroup
+ DESCRIPTION
+ "This group is mandatory for SNMP entities which
+ support community-based authentication."
+
+ GROUP snmpWarmStartNotificationGroup
+ DESCRIPTION
+ "This group is mandatory for an SNMP entity which
+ supports command responder applications, and is
+ able to reinitialize itself such that its
+ configuration is unaltered."
+ ::= { snmpMIBCompliances 3 }
+
+-- units of conformance
+
+-- ::= { snmpMIBGroups 1 } this OID is obsolete
+-- ::= { snmpMIBGroups 2 } this OID is obsolete
+-- ::= { snmpMIBGroups 3 } this OID is obsolete
+
+-- ::= { snmpMIBGroups 4 } this OID is obsolete
+
+snmpGroup OBJECT-GROUP
+ OBJECTS { snmpInPkts,
+ snmpInBadVersions,
+ snmpInASNParseErrs,
+ snmpSilentDrops,
+ snmpProxyDrops,
+ snmpEnableAuthenTraps }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic instrumentation
+ and control of an SNMP entity."
+ ::= { snmpMIBGroups 8 }
+
+snmpCommunityGroup OBJECT-GROUP
+ OBJECTS { snmpInBadCommunityNames,
+ snmpInBadCommunityUses }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing basic instrumentation
+ of a SNMP entity which supports community-based
+ authentication."
+ ::= { snmpMIBGroups 9 }
+
+snmpSetGroup OBJECT-GROUP
+ OBJECTS { snmpSetSerialNo }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects which allow several cooperating
+ command generator applications to coordinate their
+ use of the set operation."
+ ::= { snmpMIBGroups 5 }
+
+systemGroup OBJECT-GROUP
+ OBJECTS { sysDescr, sysObjectID, sysUpTime,
+ sysContact, sysName, sysLocation,
+ sysServices,
+ sysORLastChange, sysORID,
+ sysORUpTime, sysORDescr }
+ STATUS current
+ DESCRIPTION
+ "The system group defines objects which are common to all
+ managed systems."
+ ::= { snmpMIBGroups 6 }
+
+snmpBasicNotificationsGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { coldStart, authenticationFailure }
+ STATUS current
+ DESCRIPTION
+ "The basic notifications implemented by an SNMP entity
+ supporting command responder applications."
+ ::= { snmpMIBGroups 7 }
+
+snmpWarmStartNotificationGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { warmStart }
+ STATUS current
+ DESCRIPTION
+ "An additional notification for an SNMP entity supporting
+ command responder applications, if it is able to reinitialize
+ itself such that its configuration is unaltered."
+ ::= { snmpMIBGroups 11 }
+
+snmpNotificationGroup OBJECT-GROUP
+ OBJECTS { snmpTrapOID, snmpTrapEnterprise }
+ STATUS current
+ DESCRIPTION
+ "These objects are required for entities
+ which support notification originator applications."
+ ::= { snmpMIBGroups 12 }
+
+-- definitions in RFC 1213 made obsolete by the inclusion of a
+-- subset of the snmp group in this MIB
+
+snmpOutPkts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Messages which were
+ passed from the SNMP protocol entity to the
+ transport service."
+ ::= { snmp 2 }
+
+-- { snmp 7 } is not used
+
+snmpInTooBigs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field was
+ `tooBig'."
+ ::= { snmp 8 }
+
+snmpInNoSuchNames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field was
+ `noSuchName'."
+ ::= { snmp 9 }
+
+snmpInBadValues OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field was
+ `badValue'."
+ ::= { snmp 10 }
+
+snmpInReadOnlys OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number valid SNMP PDUs which were delivered
+ to the SNMP protocol entity and for which the value
+ of the error-status field was `readOnly'. It should
+ be noted that it is a protocol error to generate an
+ SNMP PDU which contains the value `readOnly' in the
+ error-status field, as such this object is provided
+ as a means of detecting incorrect implementations of
+ the SNMP."
+ ::= { snmp 11 }
+
+snmpInGenErrs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were delivered
+ to the SNMP protocol entity and for which the value
+ of the error-status field was `genErr'."
+ ::= { snmp 12 }
+
+snmpInTotalReqVars OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ retrieved successfully by the SNMP protocol entity
+ as the result of receiving valid SNMP Get-Request
+ and Get-Next PDUs."
+ ::= { snmp 13 }
+
+snmpInTotalSetVars OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ altered successfully by the SNMP protocol entity as
+ the result of receiving valid SNMP Set-Request PDUs."
+ ::= { snmp 14 }
+
+snmpInGetRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 15 }
+
+snmpInGetNexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have been
+ accepted and processed by the SNMP protocol entity."
+ ::= { snmp 16 }
+
+snmpInSetRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 17 }
+
+snmpInGetResponses OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 18 }
+
+snmpInTraps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have been
+ accepted and processed by the SNMP protocol entity."
+ ::= { snmp 19 }
+
+snmpOutTooBigs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were generated
+ by the SNMP protocol entity and for which the value
+ of the error-status field was `tooBig.'"
+ ::= { snmp 20 }
+
+snmpOutNoSuchNames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were generated
+ by the SNMP protocol entity and for which the value
+ of the error-status was `noSuchName'."
+ ::= { snmp 21 }
+
+snmpOutBadValues OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were generated
+ by the SNMP protocol entity and for which the value
+ of the error-status field was `badValue'."
+ ::= { snmp 22 }
+
+-- { snmp 23 } is not used
+
+snmpOutGenErrs OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP PDUs which were generated
+ by the SNMP protocol entity and for which the value
+ of the error-status field was `genErr'."
+ ::= { snmp 24 }
+
+snmpOutGetRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 25 }
+
+snmpOutGetNexts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 26 }
+
+snmpOutSetRequests OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 27 }
+
+snmpOutGetResponses OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 28 }
+
+snmpOutTraps OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 29 }
+
+snmpObsoleteGroup OBJECT-GROUP
+ OBJECTS { snmpOutPkts, snmpInTooBigs, snmpInNoSuchNames,
+ snmpInBadValues, snmpInReadOnlys, snmpInGenErrs,
+ snmpInTotalReqVars, snmpInTotalSetVars,
+ snmpInGetRequests, snmpInGetNexts, snmpInSetRequests,
+ snmpInGetResponses, snmpInTraps, snmpOutTooBigs,
+ snmpOutNoSuchNames, snmpOutBadValues,
+ snmpOutGenErrs, snmpOutGetRequests, snmpOutGetNexts,
+ snmpOutSetRequests, snmpOutGetResponses, snmpOutTraps
+ }
+ STATUS obsolete
+ DESCRIPTION
+ "A collection of objects from RFC 1213 made obsolete
+ by this MIB module."
+ ::= { snmpMIBGroups 10 }
+
+END
diff --git a/lib/snmp/mibs/SNMPv2-SMI.mib b/lib/snmp/mibs/SNMPv2-SMI.mib
new file mode 100644
index 0000000000..99a4f558e2
--- /dev/null
+++ b/lib/snmp/mibs/SNMPv2-SMI.mib
@@ -0,0 +1,314 @@
+SNMPv2-SMI DEFINITIONS ::= BEGIN
+
+-- the path to the root
+
+org OBJECT IDENTIFIER ::= { iso 3 }
+dod OBJECT IDENTIFIER ::= { org 6 }
+internet OBJECT IDENTIFIER ::= { dod 1 }
+
+directory OBJECT IDENTIFIER ::= { internet 1 }
+
+mgmt OBJECT IDENTIFIER ::= { internet 2 }
+mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
+transmission OBJECT IDENTIFIER ::= { mib-2 10 }
+
+experimental OBJECT IDENTIFIER ::= { internet 3 }
+
+private OBJECT IDENTIFIER ::= { internet 4 }
+enterprises OBJECT IDENTIFIER ::= { private 1 }
+
+security OBJECT IDENTIFIER ::= { internet 5 }
+
+snmpV2 OBJECT IDENTIFIER ::= { internet 6 }
+
+-- transport domains
+snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 }
+
+-- transport proxies
+snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 }
+
+-- module identities
+snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 }
+
+
+-- definitions for information modules
+
+MODULE-IDENTITY MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "LAST-UPDATED" value(Update UTCTime)
+ "ORGANIZATION" Text
+ "CONTACT-INFO" Text
+ "DESCRIPTION" Text
+ RevisionPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ RevisionPart ::=
+ Revisions
+ | empty
+ Revisions ::=
+ Revision
+ | Revisions Revision
+ Revision ::=
+ "REVISION" value(Update UTCTime)
+ "DESCRIPTION" Text
+
+ -- uses the NVT ASCII character set
+ Text ::= """" string """"
+END
+
+
+OBJECT-IDENTITY MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ Text ::= """" string """"
+END
+
+
+-- names of objects
+
+ObjectName ::=
+ OBJECT IDENTIFIER
+
+NotificationName ::=
+ OBJECT IDENTIFIER
+
+-- syntax of objects
+
+ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+
+ -- note that SEQUENCEs for conceptual tables and
+ -- rows are not mentioned here...
+
+ application-wide
+ ApplicationSyntax
+ }
+
+
+-- built-in ASN.1 types
+
+SimpleSyntax ::=
+ CHOICE {
+ -- INTEGERs with a more restrictive range
+ -- may also be used
+ integer-value -- includes Integer32
+ INTEGER (-2147483648..2147483647),
+
+ -- OCTET STRINGs with a more restrictive size
+ -- may also be used
+ string-value
+ OCTET STRING (SIZE (0..65535)),
+
+ objectID-value
+ OBJECT IDENTIFIER
+ }
+
+
+-- indistinguishable from INTEGER, but never needs more than
+-- 32-bits for a two's complement representation
+Integer32 ::=
+ [UNIVERSAL 2]
+ IMPLICIT INTEGER (-2147483648..2147483647)
+
+
+-- application-wide types
+
+ApplicationSyntax ::=
+ CHOICE {
+ ipAddress-value
+ IpAddress,
+
+ counter-value
+ Counter32,
+
+ timeticks-value
+ TimeTicks,
+
+ arbitrary-value
+ Opaque,
+
+ big-counter-value
+ Counter64,
+
+ unsigned-integer-value -- includes Gauge32
+ Unsigned32
+ }
+
+-- in network-byte order
+-- (this is a tagged type for historical reasons)
+IpAddress ::=
+ [APPLICATION 0]
+ IMPLICIT OCTET STRING (SIZE (4))
+
+-- this wraps
+Counter32 ::=
+ [APPLICATION 1]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- this doesn't wrap
+Gauge32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- an unsigned 32-bit quantity
+-- indistinguishable from Gauge32
+Unsigned32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- hundredths of seconds since an epoch
+TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+-- for backward-compatibility only
+Opaque ::=
+ [APPLICATION 4]
+ IMPLICIT OCTET STRING
+
+-- for counters that wrap in less than one hour with only 32 bits
+Counter64 ::=
+ [APPLICATION 6]
+ IMPLICIT INTEGER (0..18446744073709551615)
+
+
+-- definition for objects
+
+OBJECT-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "SYNTAX" Syntax
+ UnitsPart
+ "MAX-ACCESS" Access
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ IndexPart
+ DefValPart
+
+ VALUE NOTATION ::=
+ value(VALUE ObjectName)
+
+ Syntax ::=
+ type(ObjectSyntax)
+ | "BITS" "{" Kibbles "}"
+ Kibbles ::=
+ Kibble
+ | Kibbles "," Kibble
+ Kibble ::=
+ identifier "(" nonNegativeNumber ")"
+
+ UnitsPart ::=
+ "UNITS" Text
+ | empty
+
+ Access ::=
+ "not-accessible"
+ | "accessible-for-notify"
+ | "read-only"
+ | "read-write"
+ | "read-create"
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ IndexPart ::=
+ "INDEX" "{" IndexTypes "}"
+ | "AUGMENTS" "{" Entry "}"
+ | empty
+ IndexTypes ::=
+ IndexType
+ | IndexTypes "," IndexType
+ IndexType ::=
+ "IMPLIED" Index
+ | Index
+ Index ::=
+ -- use the SYNTAX value of the
+ -- correspondent OBJECT-TYPE invocation
+ value(Indexobject ObjectName)
+ Entry ::=
+ -- use the INDEX value of the
+ -- correspondent OBJECT-TYPE invocation
+ value(Entryobject ObjectName)
+
+ DefValPart ::=
+ "DEFVAL" "{" value(Defval Syntax) "}"
+ | empty
+
+ -- uses the NVT ASCII character set
+ Text ::= """" string """"
+END
+
+
+-- definitions for notifications
+
+NOTIFICATION-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ ObjectsPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE NotificationName)
+
+ ObjectsPart ::=
+ "OBJECTS" "{" Objects "}"
+ | empty
+ Objects ::=
+ Object
+ | Objects "," Object
+ Object ::=
+ value(Name ObjectName)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- uses the NVT ASCII character set
+ Text ::= """" string """"
+END
+
+-- definitions of administrative identifiers
+
+zeroDotZero OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "A value used for null identifiers."
+ ::= { 0 0 }
+
+END
+
diff --git a/lib/snmp/mibs/SNMPv2-TC.mib b/lib/snmp/mibs/SNMPv2-TC.mib
new file mode 100644
index 0000000000..048f4a9406
--- /dev/null
+++ b/lib/snmp/mibs/SNMPv2-TC.mib
@@ -0,0 +1,535 @@
+SNMPv2-TC DEFINITIONS ::= BEGIN
+
+IMPORTS
+ ObjectSyntax, TimeTicks FROM SNMPv2-SMI;
+
+-- definition of textual conventions
+
+TEXTUAL-CONVENTION MACRO ::=
+BEGIN
+
+ TYPE NOTATION ::=
+ DisplayPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ "SYNTAX" Syntax
+
+ VALUE NOTATION ::=
+ value(VALUE Syntax)
+
+ DisplayPart ::=
+ "DISPLAY-HINT" Text
+ | empty
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- uses the NVT ASCII character set
+ Text ::= """" string """"
+
+ Syntax ::=
+ type(ObjectSyntax)
+ | "BITS" "{" Kibbles "}"
+ Kibbles ::=
+ Kibble
+ | Kibbles "," Kibble
+ Kibble ::=
+ identifier "(" nonNegativeNumber ")"
+
+END
+
+DisplayString ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "255a"
+
+ STATUS current
+ DESCRIPTION
+ "Represents textual information taken from the NVT ASCII
+ character set, as defined in pages 4, 10-11 of RFC 854.
+
+ To summarize RFC 854, the NVT ASCII repertoire specifies:
+
+ - the use of character codes 0-127 (decimal)
+
+ - the graphics characters (32-126) are interpreted as
+ US ASCII
+
+ - NUL, LF, CR, BEL, BS, HT, VT and FF have the special
+ meanings specified in RFC 854
+
+ - the other 25 codes have no standard interpretation
+
+ - the sequence 'CR LF' means newline
+
+ - the sequence 'CR NUL' means carriage-return
+
+ - an 'LF' not preceded by a 'CR' means moving to the
+ same column on the next line.
+
+ - the sequence 'CR x' for any x other than LF or NUL is
+ illegal. (Note that this also means that a string may
+ end with either 'CR LF' or 'CR NUL', but not with CR.)
+
+ Any object defined using this syntax may not exceed 255 characters in length."
+
+ SYNTAX OCTET STRING (SIZE (0..255))
+
+PhysAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1x:"
+
+ STATUS current
+ DESCRIPTION
+ "Represents media- or physical-level addresses."
+ SYNTAX OCTET STRING
+
+
+MacAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1x:"
+
+ STATUS current
+ DESCRIPTION
+ "Represents an 802 MAC address represented in the
+ `canonical' order defined by IEEE 802.1a, i.e., as if it
+ were transmitted least significant bit first, even though
+ 802.5 (in contrast to other 802.x protocols) requires MAC
+ addresses to be transmitted most significant bit first."
+ SYNTAX OCTET STRING (SIZE (6))
+
+
+TruthValue ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "Represents a boolean value."
+ SYNTAX INTEGER { true(1), false(2) }
+
+
+TestAndIncr ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "Represents integer-valued information used for atomic
+ operations. When the management protocol is used to specify
+ that an object instance having this syntax is to be
+ modified, the new value supplied via the management protocol
+ must precisely match the value presently held by the
+ instance. If not, the management protocol set operation
+ fails with an error of `inconsistentValue'. Otherwise, if
+ the current value is the maximum value of 2^31-1 (2147483647
+ decimal), then the value held by the instance is wrapped to
+ zero; otherwise, the value held by the instance is
+ incremented by one. (Note that regardless of whether the
+ management protocol set operation succeeds, the variable-
+ binding in the request and response PDUs are identical.)
+
+ The value of the ACCESS clause for objects having this syntax is either `read-write' or `read-create'. When an instance of a columnar object having this syntax is created, any value may be supplied via the management protocol.
+
+ When the network management portion of the system is re- initialized, the value of every object instance having this syntax must either be incremented from its value prior to the re-initialization, or (if the value prior to the re- initialization is unknown) be set to a pseudo-randomly generated value."
+
+ SYNTAX INTEGER (0..2147483647)
+
+
+AutonomousType ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "Represents an independently extensible type identification
+ value. It may, for example, indicate a particular sub-tree
+ with further MIB definitions, or define a particular type of
+ protocol or hardware."
+ SYNTAX OBJECT IDENTIFIER
+
+
+InstancePointer ::= TEXTUAL-CONVENTION
+
+ STATUS obsolete
+ DESCRIPTION
+ "A pointer to either a specific instance of a MIB object or
+ a conceptual row of a MIB table in the managed device. In
+ the latter case, by convention, it is the name of the
+ particular instance of the first accessible columnar object
+ in the conceptual row.
+
+ The two uses of this textual convention are replaced by VariablePointer and RowPointer, respectively."
+
+ SYNTAX OBJECT IDENTIFIER
+
+
+VariablePointer ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "A pointer to a specific object instance. For example,
+ sysContact.0 or ifInOctets.3."
+ SYNTAX OBJECT IDENTIFIER
+
+
+RowPointer ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "Represents a pointer to a conceptual row. The value is the
+ name of the instance of the first accessible columnar object
+ in the conceptual row.
+
+ For example, ifIndex.3 would point to the 3rd row in the ifTable (note that if ifIndex were not-accessible, then ifDescr.3 would be used instead)."
+
+ SYNTAX OBJECT IDENTIFIER
+
+
+RowStatus ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "The RowStatus textual convention is used to manage the
+
+ creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].)
+
+ The status column has six defined values:
+
+ - `active', which indicates that the conceptual row is
+ available for use by the managed device;
+
+ - `notInService', which indicates that the conceptual
+ row exists in the agent, but is unavailable for use by
+ the managed device (see NOTE below);
+
+ - `notReady', which indicates that the conceptual row
+ exists in the agent, but is missing information
+ necessary in order to be available for use by the
+ managed device;
+
+ - `createAndGo', which is supplied by a management
+ station wishing to create a new instance of a
+ conceptual row and to have its status automatically set
+ to active, making it available for use by the managed
+ device;
+
+ - `createAndWait', which is supplied by a management
+ station wishing to create a new instance of a
+ conceptual row (but not make it available for use by
+ the managed device); and,
+
+ - `destroy', which is supplied by a management station
+ wishing to delete all of the instances associated with
+ an existing conceptual row.
+
+ Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady').
+
+ NOTE WELL
+
+ This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'.
+
+ Also note that whenever any elements of a row exist, the RowStatus column must also exist.
+
+ To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram:
+
+ STATE
+
+ +--------------+-----------+-------------+-------------
+ | A | B | C | D
+ | |status col.|status column|
+ |status column | is | is |status column
+ ACTION |does not exist| notReady | notInService| is active
+
+--------------+--------------+-----------+-------------+-------------
+set status |noError ->D|inconsist- |inconsistent-|inconsistent-
+column to | or | entValue| Value| Value
+createAndGo |inconsistent- | | |
+ | Value| | |
+
+--------------+--------------+-----------+-------------+-------------
+set status |noError see 1|inconsist- |inconsistent-|inconsistent-
+column to | or | entValue| Value| Value
+createAndWait |wrongValue | | |
+
+--------------+--------------+-----------+-------------+-------------
+set status |inconsistent- |inconsist- |noError |noError
+column to | Value| entValue| |
+active | | | |
+ | | or | |
+ | | | |
+ | |see 2 ->D| ->D| ->D
+
+--------------+--------------+-----------+-------------+-------------
+set status |inconsistent- |inconsist- |noError |noError ->C
+column to | Value| entValue| |
+notInService | | | |
+ | | or | | or
+ | | | |
+ | |see 3 ->C| ->C|wrongValue
+
+--------------+--------------+-----------+-------------+-------------
+set status |noError |noError |noError |noError
+column to | | | |
+destroy | ->A| ->A| ->A| ->A
+
+--------------+--------------+-----------+-------------+-------------
+set any other |see 4 |noError |noError |see 5
+column to some| | | |
+value | | see 1| ->C| ->D
+
+--------------+--------------+-----------+-------------+-------------
+
+ (1) goto B or C, depending on information available to the agent.
+
+ (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, then return noError and goto D.
+
+ (3) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, then return noError and goto C.
+
+ (4) at the discretion of the agent, the return value may be either:
+
+ inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or
+
+ inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or
+
+ noError: because the agent chooses to create the instance.
+
+ If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A.
+
+ (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned.
+
+ NOTE: Other processing of the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc.
+
+ Conceptual Row Creation
+
+ There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device.
+
+ Interaction 1: Selecting an Instance-Identifier
+
+ The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics.
+
+ In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.)
+
+ Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different.
+
+ Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation.
+
+ A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used.
+
+ Interaction 2: Creating the Conceptual Row
+
+ Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions.
+
+ Interaction 2a: Creating and Activating the Conceptual Row
+
+ The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes:
+
+ - a value is returned, indicating that some other
+ management station has already created this conceptual
+ row. We return to interaction 1.
+
+ - the exception `noSuchInstance' is returned,
+ indicating that the agent implements the object-type
+ associated with this column, and that this column in at
+ least one conceptual row would be accessible in the MIB
+ view used by the retrieval were it to exist. For those
+ columns to which the agent provides read-create access,
+ the `noSuchInstance' exception tells the management
+ station that it should supply a value for this column
+ when the conceptual row is to be created.
+
+ - the exception `noSuchObject' is returned, indicating
+ that the agent does not implement the object-type
+ associated with this column or that there is no
+ conceptual row for which this column would be
+ accessible in the MIB view used by the retrieval. As
+ such, the management station can not issue any
+ management protocol set operations to create an
+ instance of this column.
+
+ Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'.
+
+ When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using
+ `createAndWait' in order to negotiate creation of the conceptual row.
+
+ NOTE WELL
+
+ Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm.
+
+ Interaction 2b: Negotiating the Creation of the Conceptual Row
+
+ The management station issues a management protocol set operation which sets the desired instance of the status
+
+ column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3.
+
+ Interaction 3: Initializing non-defaulted Objects
+
+ The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes:
+
+ - a value is returned, indicating that the agent
+ implements the object-type associated with this column
+ and had sufficient information to provide a value. For
+ those columns to which the agent provides read-create
+ access (and for which the agent allows their values to
+ be changed after their creation), a value return tells
+ the management station that it may issue additional
+ management protocol set operations, if it desires, in
+ order to change the value associated with this column.
+
+ - the exception `noSuchInstance' is returned,
+ indicating that the agent implements the object-type
+ associated with this column, and that this column in at
+ least one conceptual row would be accessible in the MIB
+ view used by the retrieval were it to exist. However,
+ the agent does not have sufficient information to
+ provide a value, and until a value is provided, the
+ conceptual row may not be made available for use by the
+ managed device. For those columns to which the agent
+ provides read-create access, the `noSuchInstance'
+ exception tells the management station that it must
+ issue additional management protocol set operations, in
+ order to provide a value associated with this column.
+
+ - the exception `noSuchObject' is returned, indicating
+ that the agent does not implement the object-type
+ associated with this column or that there is no
+ conceptual row for which this column would be
+ accessible in the MIB view used by the retrieval. As
+ such, the management station can not issue any
+ management protocol set operations to create an
+ instance of this column.
+
+ If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4.
+
+ Interaction 4: Making the Conceptual Row Available
+
+ Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of
+ `inconsistentValue'.
+
+ NOTE WELL
+
+ A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device.
+
+ If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of
+
+ time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absense of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row.
+
+ Conceptual Row Suspension
+
+ When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified).
+
+ Conceptual Row Deletion
+
+ For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed."
+
+ SYNTAX INTEGER {
+ -- the following two values are states:
+ -- these values may be read or written
+ active(1),
+ notInService(2),
+
+ -- the following value is a state:
+ -- this value may be read, but not written
+ notReady(3),
+
+ -- the following three values are
+ -- actions: these values may be written,
+ -- but are never read
+ createAndGo(4),
+ createAndWait(5),
+ destroy(6)
+ }
+
+
+TimeStamp ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "The value of the sysUpTime object at which a specific
+ occurrence happened. The specific occurrence must be
+ defined in the description of any object defined using this
+ type."
+ SYNTAX TimeTicks
+
+
+TimeInterval ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "A period of time, measured in units of 0.01 seconds."
+ SYNTAX INTEGER (0..2147483647)
+
+
+DateAndTime ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d"
+
+ STATUS current
+ DESCRIPTION
+ "A date-time specification.
+
+ field octets contents range
+ ----- ------ -------- -----
+ 1 1-2 year 0..65536
+ 2 3 month 1..12
+ 3 4 day 1..31
+ 4 5 hour 0..23
+ 5 6 minutes 0..59
+ 6 7 seconds 0..60
+ (use 60 for leap-second)
+ 7 8 deci-seconds 0..9
+ 8 9 direction from UTC '+' / '-'
+ 9 10 hours from UTC 0..11
+ 10 11 minutes from UTC 0..59
+
+ For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as:
+
+ 1992-5-26,13:30:15.0,-4:0
+
+ Note that if only local time is known, then timezone information (fields 8-10) is not present."
+
+ SYNTAX OCTET STRING (SIZE (8 | 11))
+
+
+StorageType ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "Describes the memory realization of a conceptual row. A
+ row which is volatile(2) is lost upon reboot. A row which
+ is either nonVolatile(3), permanent(4) or readOnly(5), is
+ backed up by stable storage. A row which is permanent(4)
+ can be changed but not deleted. A row which is readOnly(5)
+ cannot be changed nor deleted.
+
+ If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be modified. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5).
+
+ Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable."
+
+ SYNTAX INTEGER {
+ other(1), -- eh?
+ volatile(2), -- e.g., in RAM
+ nonVolatile(3), -- e.g., in NVRAM
+ permanent(4), -- e.g., partially in ROM
+ readOnly(5) -- e.g., completely in ROM
+ }
+
+
+TDomain ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "Denotes a kind of transport service.
+
+ Some possible values, such as snmpUDPDomain, are defined in 'Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)'."
+
+ SYNTAX OBJECT IDENTIFIER
+
+
+TAddress ::= TEXTUAL-CONVENTION
+
+ STATUS current
+ DESCRIPTION
+ "Denotes a transport service address.
+
+ For snmpUDPDomain, a TAddress is 6 octets long, the initial 4 octets containing the IP-address in network-byte order and the last 2 containing the UDP port in network-byte order. Consult 'Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)' for further information on snmpUDPDomain."
+
+ SYNTAX OCTET STRING (SIZE (1..255))
+
+END
diff --git a/lib/snmp/mibs/SNMPv2-TM.mib b/lib/snmp/mibs/SNMPv2-TM.mib
new file mode 100644
index 0000000000..6884ea98d8
--- /dev/null
+++ b/lib/snmp/mibs/SNMPv2-TM.mib
@@ -0,0 +1,151 @@
+SNMPv2-TM DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-IDENTITY, snmpDomains, snmpProxys, snmpModules
+ FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION
+ FROM SNMPv2-TC;
+
+snmpv2TM MODULE-IDENTITY
+ LAST-UPDATED "9709250900Z"
+ ORGANIZATION "IETF SNMPv2 Working Group"
+ CONTACT-INFO
+ " Marshall T. Rose
+
+ Postal: Dover Beach Consulting, Inc.
+ 420 Whisman Court
+ Mountain View, CA 94043-2186
+ US
+
+ Tel: +1 415 968 1052
+
+ DESCRIPTION
+ "The MIB module for SNMPv2 Transport Mappings."
+ REVISION "9709250900Z"
+ DESCRIPTION
+ "This MIB module is extracted from RFC 1906. It is
+ modified by [email protected] to be
+ compilable. The MODULE-IDENTITY specification was
+ added."
+ ::= { snmpModules 0 } -- dummy
+
+-- SNMPv2 over UDP over IPv4
+
+snmpUDPDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMPv2 over UDP transport domain. The corresponding
+ transport address is of type SnmpUDPAddress."
+ ::= { snmpDomains 1 }
+
+SnmpUDPAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "1d.1d.1d.1d/2d"
+ STATUS current
+ DESCRIPTION
+ "Represents a UDP address:
+
+ octets contents encoding
+ 1-4 IP-address network-byte order
+ 5-6 UDP-port network-byte order
+ "
+ SYNTAX OCTET STRING (SIZE (6))
+
+
+-- SNMPv2 over OSI
+
+snmpCLNSDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMPv2 over CLNS transport domain. The corresponding
+ transport address is of type SnmpOSIAddress."
+ ::= { snmpDomains 2 }
+
+snmpCONSDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMPv2 over CONS transport domain. The corresponding
+ transport address is of type SnmpOSIAddress."
+ ::= { snmpDomains 3 }
+
+SnmpOSIAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "*1x:/1x:"
+ STATUS current
+ DESCRIPTION
+ "Represents an OSI transport-address:
+
+ octets contents encoding
+ 1 length of NSAP 'n' as an unsigned-integer
+ (either 0 or from 3 to 20)
+ 2..(n+1) NSAP concrete binary representation
+ (n+2)..m TSEL string of (up to 64) octets
+ "
+ SYNTAX OCTET STRING (SIZE (1 | 4..85))
+
+
+-- SNMPv2 over DDP
+
+snmpDDPDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMPv2 over DDP transport domain. The corresponding
+ transport address is of type SnmpNBPAddress."
+ ::= { snmpDomains 4 }
+
+SnmpNBPAddress ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents an NBP name:
+
+ octets contents encoding
+ 1 length of object 'n' as an unsigned integer
+ 2..(n+1) object string of (up to 32) octets
+ n+2 length of type 'p' as an unsigned integer
+ (n+3)..(n+2+p) type string of (up to 32) octets
+ n+3+p length of zone 'q' as an unsigned integer
+ (n+4+p)..(n+3+p+q) zone string of (up to 32) octets
+
+ For comparison purposes, strings are case-insensitive All
+ strings may contain any octet other than 255 (hex ff)."
+ SYNTAX OCTET STRING (SIZE (3..99))
+
+
+-- SNMPv2 over IPX
+
+snmpIPXDomain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The SNMPv2 over IPX transport domain. The corresponding
+ transport address is of type SnmpIPXAddress."
+ ::= { snmpDomains 5 }
+
+SnmpIPXAddress ::= TEXTUAL-CONVENTION
+ DISPLAY-HINT "4x.1x:1x:1x:1x:1x:1x.2d"
+ STATUS current
+ DESCRIPTION
+ "Represents an IPX address:
+
+ octets contents encoding
+ 1-4 network-number network-byte order
+ 5-10 physical-address network-byte order
+ 11-12 socket-number network-byte order
+ "
+ SYNTAX OCTET STRING (SIZE (12))
+
+
+-- for proxy to SNMPv1 (RFC 1157)
+
+rfc1157Proxy OBJECT IDENTIFIER ::= { snmpProxys 1 }
+
+rfc1157Domain OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "The transport domain for SNMPv1 over UDP. The
+ corresponding transport address is of type SnmpUDPAddress."
+ ::= { rfc1157Proxy 1 }
+
+-- ::= { rfc1157Proxy 2 } this OID is obsolete
+
+
+END
+
diff --git a/lib/snmp/mibs/STANDARD-MIB.funcs b/lib/snmp/mibs/STANDARD-MIB.funcs
new file mode 100644
index 0000000000..908497b4f8
--- /dev/null
+++ b/lib/snmp/mibs/STANDARD-MIB.funcs
@@ -0,0 +1,36 @@
+{sysUpTime, {snmp_standard_mib, sys_up_time, []}}.
+{sysDescr, {snmp_generic, variable_func, [{sysDescr, persistent}]}}.
+{sysObjectID, {snmp_generic, variable_func, [{sysObjectID, persistent}]}}.
+{sysContact, {snmp_generic, variable_func, [{sysContact, persistent}]}}.
+{sysName, {snmp_generic, variable_func, [{sysName, persistent}]}}.
+{sysLocation, {snmp_generic, variable_func, [{sysLocation, persistent}]}}.
+{sysServices, {snmp_generic, variable_func, [{sysServices, persistent}]}}.
+{snmpEnableAuthenTraps, {snmp_standard_mib, snmp_enable_authen_traps, []}}.
+
+{snmpInPkts, {snmp_standard_mib, variable_func, [snmpInPkts]}}.
+{snmpOutPkts, {snmp_standard_mib, variable_func, [snmpOutPkts]}}.
+{snmpInBadVersions, {snmp_standard_mib, variable_func, [snmpInBadVersions]}}.
+{snmpInBadCommunityNames, {snmp_standard_mib, variable_func, [snmpInBadCommunityNames]}}.
+{snmpInBadCommunityUses, {snmp_standard_mib, variable_func, [snmpInBadCommunityUses]}}.
+{snmpInASNParseErrs, {snmp_standard_mib, variable_func, [snmpInASNParseErrs]}}.
+{snmpInTooBigs, {snmp_standard_mib, variable_func, [snmpInTooBigs]}}.
+{snmpInNoSuchNames, {snmp_standard_mib, variable_func, [snmpInNoSuchNames]}}.
+{snmpInBadValues, {snmp_standard_mib, variable_func, [snmpInBadValues]}}.
+{snmpInReadOnlys, {snmp_standard_mib, variable_func, [snmpInReadOnlys]}}.
+{snmpInGenErrs, {snmp_standard_mib, variable_func, [snmpInGenErrs]}}.
+{snmpInTotalReqVars, {snmp_standard_mib, variable_func, [snmpInTotalReqVars]}}.
+{snmpInTotalSetVars, {snmp_standard_mib, variable_func, [snmpInTotalSetVars]}}.
+{snmpInGetRequests, {snmp_standard_mib, variable_func, [snmpInGetRequests]}}.
+{snmpInGetNexts, {snmp_standard_mib, variable_func, [snmpInGetNexts]}}.
+{snmpInSetRequests, {snmp_standard_mib, variable_func, [snmpInSetRequests]}}.
+{snmpInGetResponses, {snmp_standard_mib, variable_func, [snmpInGetResponses]}}.
+{snmpInTraps, {snmp_standard_mib, variable_func, [snmpInTraps]}}.
+{snmpOutTooBigs, {snmp_standard_mib, variable_func, [snmpOutTooBigs]}}.
+{snmpOutNoSuchNames, {snmp_standard_mib, variable_func, [snmpOutNoSuchNames]}}.
+{snmpOutBadValues, {snmp_standard_mib, variable_func, [snmpOutBadValues]}}.
+{snmpOutGenErrs, {snmp_standard_mib, variable_func, [snmpOutGenErrs]}}.
+{snmpOutGetRequests, {snmp_standard_mib, variable_func, [snmpOutGetRequests]}}.
+{snmpOutGetNexts, {snmp_standard_mib, variable_func, [snmpOutGetNexts]}}.
+{snmpOutSetRequests, {snmp_standard_mib, variable_func, [snmpOutSetRequests]}}.
+{snmpOutGetResponses, {snmp_standard_mib, variable_func, [snmpOutGetResponses]}}.
+{snmpOutTraps, {snmp_standard_mib, variable_func, [snmpOutTraps]}}.
diff --git a/lib/snmp/mibs/STANDARD-MIB.mib b/lib/snmp/mibs/STANDARD-MIB.mib
new file mode 100644
index 0000000000..552b8a3e48
--- /dev/null
+++ b/lib/snmp/mibs/STANDARD-MIB.mib
@@ -0,0 +1,528 @@
+STANDARD-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ Counter, TimeTicks
+ FROM RFC1155-SMI
+ OBJECT-TYPE
+ FROM RFC-1212
+ DisplayString, mib-2
+ FROM RFC1213-MIB
+ ;
+
+
+-- Standard Datatypes
+
+-- From SNMPv2 (rfc1903)
+TruthValue ::=
+-- Represents a boolean value
+ INTEGER { true(1), false(2) }
+
+-- From SNMPv2 (rfc1903)
+DateAndTime ::=
+-- DESCRIPTION
+-- "A date-time specification.
+--
+-- field octets contents range
+-- 1 1-2 year 0..65536
+-- 2 3 month 1..12
+-- 3 4 day 1..31
+-- 4 5 hour 0..23
+-- 5 6 minutes 0..59
+-- 6 7 seconds 0..60
+-- (use 60 for leap-second)
+-- 7 8 deci-seconds 0..9
+-- 8 9 direction from UTC '+' / '-'
+-- 9 10 hours from UTC 0..11
+-- 10 11 minutes from UTC 0..59
+--
+-- For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be
+-- displayed as:
+--
+-- 1992-5-26,13:30:15.0,-4:0
+--
+-- Note that if only local time is known, then timezone
+-- information (fields 8-10) is not present."
+ OCTET STRING (SIZE (8 | 11))
+
+-- From SNMPv2 (rfc1903)
+RowStatus ::=
+ INTEGER {
+ -- the following two values are states:
+ -- these values may be read or written
+ active(1),
+ notInService(2),
+
+ -- the following value is a state:
+ -- this value may be read, but not written
+ notReady(3),
+
+ -- the following three values are
+ -- actions: these values may be written,
+ -- but are never read
+ createAndGo(4),
+ createAndWait(5),
+ destroy(6)
+ }
+
+
+system OBJECT IDENTIFIER ::= { mib-2 1 }
+snmp OBJECT IDENTIFIER ::= { mib-2 11 }
+
+
+-- the System group
+
+-- Implementation of the System group is mandatory for all
+-- systems. If an agent is not configured to have a value
+-- for any of these variables, a string of length 0 is
+-- returned.
+
+sysDescr OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A textual description of the entity. This value
+ should include the full name and version
+ identification of the system's hardware type,
+ software operating-system, and networking
+ software. It is mandatory that this only contain
+ printable ASCII characters."
+ ::= { system 1 }
+
+sysObjectID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The vendor's authoritative identification of the
+ network management subsystem contained in the
+ entity. This value is allocated within the SMI
+ enterprises subtree (1.3.6.1.4.1) and provides an
+ easy and unambiguous means for determining `what
+ kind of box' is being managed. For example, if
+ vendor `Flintstones, Inc.' was assigned the
+ subtree 1.3.6.1.4.1.4242, it could assign the
+ identifier 1.3.6.1.4.1.4242.1.1 to its `Fred
+ Router'."
+ ::= { system 2 }
+
+sysUpTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time (in hundredths of a second) since the
+ network management portion of the system was last
+ re-initialized."
+ ::= { system 3 }
+
+sysContact OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The textual identification of the contact person
+ for this managed node, together with information
+ on how to contact this person."
+ ::= { system 4 }
+
+sysName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An administratively-assigned name for this
+ managed node. By convention, this is the node's
+ fully-qualified domain name."
+ ::= { system 5 }
+
+sysLocation OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..255))
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The physical location of this node (e.g.,
+ `telephone closet, 3rd floor')."
+ ::= { system 6 }
+
+sysServices OBJECT-TYPE
+ SYNTAX INTEGER (0..127)
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A value which indicates the set of services that
+ this entity primarily offers.
+
+ The value is a sum. This sum initially takes the
+ value zero, Then, for each layer, L, in the range
+ 1 through 7, that this node performs transactions
+ for, 2 raised to (L - 1) is added to the sum. For
+ example, a node which performs primarily routing
+ functions would have a value of 4 (2^(3-1)). In
+ contrast, a node which is a host offering
+ application services would have a value of 72
+ (2^(4-1) + 2^(7-1)). Note that in the context of
+ the Internet suite of protocols, values should be
+ calculated accordingly:
+
+ layer functionality
+ 1 physical (e.g., repeaters)
+ 2 datalink/subnetwork (e.g., bridges)
+ 3 internet (e.g., IP gateways)
+ 4 end-to-end (e.g., IP hosts)
+ 7 applications (e.g., mail relays)
+
+ For systems including OSI protocols, layers 5 and
+ 6 may also be counted."
+ ::= { system 7 }
+
+
+ -- the SNMP group
+
+ -- Implementation of the SNMP group is mandatory for all
+ -- systems which support an SNMP protocol entity. Some of
+ -- the objects defined below will be zero-valued in those
+ -- SNMP implementations that are optimized to support only
+ -- those functions specific to either a management agent or
+ -- a management station. In particular, it should be
+ -- observed that the objects below refer to an SNMP entity,
+ -- and there may be several SNMP entities residing on a
+ -- managed node (e.g., if the node is hosting acting as
+ -- a management station).
+
+snmpInPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of Messages delivered to the
+ SNMP entity from the transport service."
+ ::= { snmp 1 }
+
+snmpOutPkts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages which were
+ passed from the SNMP protocol entity to the
+ transport service."
+ ::= { snmp 2 }
+
+snmpInBadVersions OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages which were
+ delivered to the SNMP protocol entity and were for
+ an unsupported SNMP version."
+ ::= { snmp 3 }
+
+snmpInBadCommunityNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages delivered to
+ the SNMP protocol entity which used a SNMP
+ community name not known to said entity."
+ ::= { snmp 4 }
+
+snmpInBadCommunityUses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Messages delivered to
+ the SNMP protocol entity which represented an SNMP
+ operation which was not allowed by the SNMP
+ community named in the Message."
+ ::= { snmp 5 }
+
+snmpInASNParseErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of ASN.1 or BER errors
+ encountered by the SNMP protocol entity when
+ decoding received SNMP Messages."
+ ::= { snmp 6 }
+
+ -- { snmp 7 } is not used
+
+snmpInTooBigs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `tooBig'."
+ ::= { snmp 8 }
+
+snmpInNoSuchNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `noSuchName'."
+ ::= { snmp 9 }
+
+snmpInBadValues OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `badValue'."
+ ::= { snmp 10 }
+
+snmpInReadOnlys OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number valid SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `readOnly'. It should be noted that it is a
+ protocol error to generate an SNMP PDU which
+ contains the value `readOnly' in the error-status
+ field, as such this object is provided as a means
+ of detecting incorrect implementations of the
+ SNMP."
+ ::= { snmp 11 }
+
+snmpInGenErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ delivered to the SNMP protocol entity and for
+ which the value of the error-status field is
+ `genErr'."
+ ::= { snmp 12 }
+
+snmpInTotalReqVars OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ retrieved successfully by the SNMP protocol entity
+ as the result of receiving valid SNMP Get-Request
+ and Get-Next PDUs."
+ ::= { snmp 13 }
+
+snmpInTotalSetVars OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of MIB objects which have been
+ altered successfully by the SNMP protocol entity
+ as the result of receiving valid SNMP Set-Request
+ PDUs."
+ ::= { snmp 14 }
+
+snmpInGetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 15 }
+
+snmpInGetNexts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have
+ been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 16 }
+
+snmpInSetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 17 }
+
+snmpInGetResponses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been accepted and processed by the SNMP
+ protocol entity."
+ ::= { snmp 18 }
+
+snmpInTraps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have
+ been accepted and processed by the SNMP protocol
+ entity."
+ ::= { snmp 19 }
+
+snmpOutTooBigs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `tooBig.'"
+ ::= { snmp 20 }
+
+snmpOutNoSuchNames OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status is
+ `noSuchName'."
+ ::= { snmp 21 }
+
+snmpOutBadValues OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `badValue'."
+ ::= { snmp 22 }
+
+ -- { snmp 23 } is not used
+
+snmpOutGenErrs OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP PDUs which were
+ generated by the SNMP protocol entity and for
+ which the value of the error-status field is
+ `genErr'."
+ ::= { snmp 24 }
+
+snmpOutGetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 25 }
+
+snmpOutGetNexts OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Next PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 26 }
+
+snmpOutSetRequests OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Set-Request PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 27 }
+
+snmpOutGetResponses OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Get-Response PDUs which
+ have been generated by the SNMP protocol entity."
+ ::= { snmp 28 }
+
+snmpOutTraps OBJECT-TYPE
+ SYNTAX Counter
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of SNMP Trap PDUs which have
+ been generated by the SNMP protocol entity."
+ ::= { snmp 29 }
+
+snmpEnableAuthenTraps OBJECT-TYPE
+ SYNTAX INTEGER { enabled(1), disabled(2) }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether the SNMP agent process is
+ permitted to generate authentication-failure
+ traps. The value of this object overrides any
+ configuration information; as such, it provides a
+ means whereby all authentication-failure traps may
+ be disabled.
+
+ Note that it is strongly recommended that this
+ object be stored in non-volatile memory so that it
+ remains constant between re-initializations of the
+ network management system."
+ ::= { snmp 30 }
+
+coldStart TRAP-TYPE
+ ENTERPRISE snmp
+ DESCRIPTION
+ "A coldStart trap signifies that the sending
+ protocol entity is reinitializing itself such
+ that the agent's configuration or the rotocol
+ entity implementation may be altered."
+ ::= 0
+
+warmStart TRAP-TYPE
+ ENTERPRISE snmp
+ DESCRIPTION
+ "A warmStart trap signifies that the sending
+ protocol entity is reinitializing itself such
+ that neither the agent configuration nor the
+ protocol entity implementation is altered."
+ ::= 1
+
+authenticationFailure TRAP-TYPE
+ ENTERPRISE snmp
+ DESCRIPTION
+ "An authenticationFailure trap signifies that
+ the sending protocol entity is the addressee
+ of a protocol message that is not properly
+ authenticated. While implementations of the
+ SNMP must be capable of generating this trap,
+ they must also be capable of suppressing the
+ emission of such traps via an implementation-
+ specific mechanism."
+ ::= 4
+
+END
+
diff --git a/lib/snmp/mibs/prebuild.skip b/lib/snmp/mibs/prebuild.skip
new file mode 100644
index 0000000000..f3c7a7c5da
--- /dev/null
+++ b/lib/snmp/mibs/prebuild.skip
@@ -0,0 +1 @@
+Makefile
diff --git a/lib/snmp/mibs/v1/.gitignore b/lib/snmp/mibs/v1/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/snmp/mibs/v1/.gitignore