Network Working Group                                       R. Kavasseri
Request for Comments: 2982                      (Editor of this version)
Category: Standards Track                                     B. Stewart
                                            (Author of previous version)
                                                     Cisco Systems, Inc.
                                                            October 2000
        
Network Working Group                                       R. Kavasseri
Request for Comments: 2982                      (Editor of this version)
Category: Standards Track                                     B. Stewart
                                            (Author of previous version)
                                                     Cisco Systems, Inc.
                                                            October 2000
        

Distributed Management Expression MIB

分布式管理表达式MIB

Status of this Memo

本备忘录的状况

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2000). All Rights Reserved.

版权所有(C)互联网协会(2000年)。版权所有。

Abstract

摘要

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects used for managing expressions of MIB objects. The results of these expressions become MIB objects usable like any other MIB object, such as for the test condition for declaring an event.

此备忘录定义了管理信息库(MIB)的一部分,用于Internet社区中的网络管理协议。特别是,它描述了用于管理MIB对象表达式的托管对象。这些表达式的结果将成为与任何其他MIB对象一样可用的MIB对象,例如用于声明事件的测试条件。

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不得”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119中的说明进行解释。

Table of Contents

目录

   1 The SNMP Management Framework ...............................    2
   2 Overview ....................................................    3
   2.1 Usage .....................................................    4
   2.2 Persistence ...............................................    4
   2.3 Operation .................................................    4
   2.3.1 Sampling ................................................    5
   2.3.2 Wildcards ...............................................    5
   2.3.3 Evaluation ..............................................    5
   2.3.4 Value Identification ....................................    6
   2.4 Subsets ...................................................    6
   2.4.1 No Wildcards ............................................    6
        
   1 The SNMP Management Framework ...............................    2
   2 Overview ....................................................    3
   2.1 Usage .....................................................    4
   2.2 Persistence ...............................................    4
   2.3 Operation .................................................    4
   2.3.1 Sampling ................................................    5
   2.3.2 Wildcards ...............................................    5
   2.3.3 Evaluation ..............................................    5
   2.3.4 Value Identification ....................................    6
   2.4 Subsets ...................................................    6
   2.4.1 No Wildcards ............................................    6
        
   2.4.2 No Deltas ...............................................    7
   2.5 Structure .................................................    7
   2.5.1 Resource ................................................    7
   2.5.2 Definition ..............................................    7
   2.5.3 Value ...................................................    8
   2.6 Examples ..................................................    8
   2.6.1 Wildcarding .............................................    8
   2.6.2 Calculation and Conditional .............................   10
   3 Definitions .................................................   12
   4 Intellectual Property .......................................   36
   5 Acknowledgements ............................................   37
   6 References ..................................................   37
   7 Security Considerations .....................................   38
   8 Author's Address ............................................   40
   9 Editor's Address ............................................   40
   10 Full Copyright Statement ...................................   41
        
   2.4.2 No Deltas ...............................................    7
   2.5 Structure .................................................    7
   2.5.1 Resource ................................................    7
   2.5.2 Definition ..............................................    7
   2.5.3 Value ...................................................    8
   2.6 Examples ..................................................    8
   2.6.1 Wildcarding .............................................    8
   2.6.2 Calculation and Conditional .............................   10
   3 Definitions .................................................   12
   4 Intellectual Property .......................................   36
   5 Acknowledgements ............................................   37
   6 References ..................................................   37
   7 Security Considerations .....................................   38
   8 Author's Address ............................................   40
   9 Editor's Address ............................................   40
   10 Full Copyright Statement ...................................   41
        
1. The SNMP Management Framework
1. SNMP管理框架

The SNMP Management Framework presently consists of five major components:

SNMP管理框架目前由五个主要组件组成:

o An overall architecture, described in RFC 2571 [RFC2571].

o RFC 2571[RFC2571]中描述的总体架构。

o Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and described in STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC 1215 [RFC1215]. The second version, called SMIv2, is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580].

o 为管理目的描述和命名对象和事件的机制。这种管理信息结构(SMI)的第一个版本称为SMIv1,并在STD 16、RFC 1155[RFC1155]、STD 16、RFC 1212[RFC1212]和RFC 1215[RFC1215]中进行了描述。第二个版本称为SMIv2,在STD 58、RFC 2578[RFC2578]、STD 58、RFC 2579[RFC2579]和STD 58、RFC 2580[RFC2580]中进行了描述。

o Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in STD 15, RFC 1157 [RFC1157]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [RFC1901] and RFC 1906 [RFC1906]. The third version of the message protocol is called SNMPv3 and described in RFC 1906 [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574].

o 用于传输管理信息的消息协议。SNMP消息协议的第一个版本称为SNMPv1,在STD 15 RFC 1157[RFC1157]中进行了描述。SNMP消息协议的第二个版本不是Internet标准跟踪协议,称为SNMPv2c,在RFC 1901[RFC1901]和RFC 1906[RFC1906]中进行了描述。消息协议的第三个版本称为SNMPv3,在RFC 1906[RFC1906]、RFC 2572[RFC2572]和RFC 2574[RFC2574]中进行了描述。

o Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [RFC1157]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [RFC1905].

o 访问管理信息的协议操作。STD 15、RFC 1157[RFC1157]中描述了第一组协议操作和相关PDU格式。RFC 1905[RFC1905]中描述了第二组协议操作和相关PDU格式。

o A set of fundamental applications described in RFC 2573 [RFC2573] and the view-based access control mechanism described in RFC 2575 [RFC2575].

o RFC 2573[RFC2573]中描述的一组基本应用程序和RFC 2575[RFC2575]中描述的基于视图的访问控制机制。

A more detailed introduction to the current SNMP Management Framework can be found in RFC 2570 [RFC2570].

有关当前SNMP管理框架的更详细介绍,请参见RFC 2570[RFC2570]。

Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI.

托管对象通过虚拟信息存储(称为管理信息库或MIB)进行访问。MIB中的对象是使用SMI中定义的机制定义的。

This memo specifies a MIB module that is compliant to the SMIv2. A MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine readable information is not considered to change the semantics of the MIB.

此备忘录指定了符合SMIv2的MIB模块。通过适当的翻译,可以生成符合SMIv1的MIB。生成的已翻译MIB必须在语义上等效,除非由于无法翻译而省略了对象或事件(使用计数器64)。在翻译过程中,SMIv2中的一些机器可读信息将转换为SMIv1中的文本描述。但是,这种机器可读信息的丢失不被认为会改变MIB的语义。

2. Overview
2. 概述

Users of MIBs often desire MIB objects that MIB designers have not provided. Furthermore, such needs vary from one management philosophy to another. Rather than fill more and more MIBs with standardized objects, the Expression MIB supports externally defined expressions of existing MIB objects.

MIB的用户通常需要MIB设计器未提供的MIB对象。此外,这种需求因管理哲学的不同而不同。表达式MIB支持现有MIB对象的外部定义表达式,而不是用标准化对象填充越来越多的MIB。

In the Expression MIB the results of an evaluated expression are MIB objects that may be used like any other MIB objects. These custom-defined objects are thus usable anywhere any other MIB object can be used. For example, they can be used by a management application directly or referenced from another MIB, such as the Event MIB [MIBEventMIB]. They can even be used by the Expression MIB itself, forming expressions of expressions.

在表达式MIB中,计算表达式的结果是MIB对象,可以与任何其他MIB对象一样使用。因此,这些自定义定义的对象可以在任何其他MIB对象可以使用的地方使用。例如,管理应用程序可以直接使用它们,也可以从另一个MIB(如事件MIB[MIBEventMIB])引用它们。它们甚至可以被表达式MIB本身使用,形成表达式的表达式。

The Expression MIB is instrumentation for a relatively powerful, complex, high-level application, considerably different from simple instrumentation for a communication driver or a protocol. The MIB is appropriate in a relatively powerful, resource-rich managed system and not necessarily in a severely limited environment.

表达式MIB是用于相对强大、复杂、高级应用程序的工具,与用于通信驱动程序或协议的简单工具有很大不同。MIB适用于功能相对强大、资源丰富的管理系统,而不一定适用于严重受限的环境。

Nevertheless, due to dependencies from the Event MIB [RFC2981] and the need to support as low-end a system as possible, the Expression MIB can be somewhat stripped down for lower-power, lower-resource implementations, as described in the Subsets section, below.

然而,由于事件MIB[RFC2981]的依赖性以及需要支持尽可能低端的系统,表达式MIB可以稍微精简,以实现低功耗、低资源的实现,如下面的子集部分所述。

Implementation of the Expression MIB in a managed system led to the addition of objects that may not have been necessary in an application environment with complete knowledge of compiled MIB definitions. This is appropriate since implementation must be possible within typical managed systems with some constraints on system resources.

在托管系统中实现表达式MIB会导致添加一些对象,这些对象在完全了解已编译MIB定义的应用程序环境中可能不是必需的。这是适当的,因为在典型的受管理系统中必须能够实现,并且对系统资源有一些限制。

2.1. Usage
2.1. 用法

On managed systems that can afford the overhead, the Expression MIB is a way to create new, customized MIB objects for monitoring. Although these can save some network traffic and overhead on management systems, that is often not a good tradeoff for objects that are simply to be recorded or displayed.

在能够承受开销的托管系统上,表达式MIB是创建新的自定义MIB对象以进行监视的一种方法。尽管这些可以节省一些网络流量和管理系统的开销,但对于只需记录或显示的对象来说,这通常不是一个好的折衷方案。

An example of a use of the Expression MIB would be to provide custom objects for the Event MIB [RFC2981]. A complex expression can evaluate to a rate of flow or a boolean and thus be subject to testing as an event trigger, resulting in an SNMP notification. Without these capabilities such monitoring would be limited to the objects in predefined MIBs. The Expression MIB thus supports powerful tools for the network manager faced with the monitoring of large, complex systems that can support a significant level of self management.

表达式MIB的一个使用示例是为事件MIB[RFC2981]提供自定义对象。复杂表达式的计算结果可以是流量或布尔值,因此需要作为事件触发器进行测试,从而生成SNMP通知。如果没有这些功能,这种监视将仅限于预定义MIB中的对象。因此,Expression MIB为网络管理器提供了强大的工具,使其能够监控大型复杂系统,从而支持更高级别的自我管理。

2.2. Persistence
2.2. 坚持不懈

Although like most MIBs this one has no explicit controls for the persistence of the values set in configuring an expression, a robust, polite implementation would certainly not force its managing applications to reconfigure it whenever it resets.

尽管与大多数MIB一样,此MIB没有明确的控件来持久化在配置表达式时设置的值,但一个健壮、礼貌的实现肯定不会强迫其管理应用程序在重置时重新配置它。

Again, as with most MIBs, it is implementation specific how a system provides and manages such persistence. To speculate, one could imagine, for example, that persistence depended on the context in which the expression was configured, or perhaps system-specific characteristics of the expression's owner. Or perhaps everything in a MIB such as this one, which is clearly aimed at persistent configuration, is automatically part of a system's other persistent configuration.

同样,与大多数MIB一样,系统如何提供和管理这种持久性取决于具体的实现。举例来说,我们可以想象,持久性取决于表达式配置的上下文,或者可能取决于表达式所有者的系统特定特征。或者,像这样的MIB中的所有内容(显然是针对持久性配置的)都会自动成为系统其他持久性配置的一部分。

2.3. Operation
2.3. 活动

Most of the operation of the MIB is described or implied in the object definitions but a few highlights bear mentioning here.

MIB的大部分操作都在对象定义中进行了描述或暗示,但这里有几个要点值得一提。

2.3.1. Sampling
2.3.1. 取样

The MIB supports three types of object sampling for the MIB objects that make up the expression: absolute, delta, and changed.

MIB支持对构成表达式的MIB对象进行三种类型的对象采样:绝对采样、增量采样和更改采样。

Absolute samples are simply the value of the MIB object at the time it is sampled.

绝对采样数只是MIB对象采样时的值。

Absolute samples are not sufficient for expressions of counters, as counters have meaning only as a delta (difference) from one sample to the next. Thus objects may be sampled as deltas. Delta sampling requires the application to maintain state for the value at the last sample, and to do continuous sampling whether or not anyone is looking at the results. It thus creates constant overhead.

绝对样本对于计数器的表达式是不够的,因为计数器仅具有从一个样本到下一个样本的增量(差)的含义。因此,对象可以作为三角洲进行采样。增量采样要求应用程序维护上一次采样时的值状态,并进行连续采样,无论是否有人查看结果。因此,它会产生持续的开销。

Changed sampling is a simple fallout of delta sampling where rather than a difference the result is a boolean indicating whether or not the object changed value since the last sample.

更改采样是增量采样的一个简单附带结果,其中结果不是差异,而是一个布尔值,指示自上次采样以来对象的值是否更改。

2.3.2. Wildcards
2.3.2. 通配符

Wildcards allow the application of a single expression to multiple instances of the same MIB object. The definer of the expression indicates this choice and provides a partial object identifier, with some or all of the instance portion left off. The application then does the equivalent of GetNext to obtain the object values, thus discovering the instances.

通配符允许将单个表达式应用于同一MIB对象的多个实例。表达式的定义者指示此选择,并提供部分对象标识符,同时保留部分或全部实例部分。然后,应用程序执行与GetNext等效的操作来获取对象值,从而发现实例。

All wildcarded objects in an expression must have the same semantics for the missing portion of their object identifiers. Otherwise, any successful evaluation of the wildcarded expression would be the result of the accidental matching of the wildcarded portion of the object identifiers in the expression. Such an evaluation will likely produce results which are not meaningful.

表达式中所有通配符对象的对象标识符缺失部分的语义必须相同。否则,通配符表达式的任何成功计算都将是表达式中对象标识符的通配符部分意外匹配的结果。这种评估可能会产生没有意义的结果。

The expression can be evaluated only for those instances where all the objects in the expression are available with the same value for the wildcarded portion of the instance.

只有当表达式中的所有对象对于实例的通配符部分具有相同的值时,才能对表达式求值。

2.3.3. Evaluation
2.3.3. 评价

There are two important aspects of evaluation that may not be obvious: what objects and when.

评估的两个重要方面可能并不明显:对象和时间。

What objects get used in the evaluation depends on the type of request and whether or not the expression contains wildcarded objects. If the request was a Get, that locks down the instances to

计算中使用的对象取决于请求的类型以及表达式是否包含通配符对象。如果请求是Get,则会将实例锁定到

be used. If the request was a GetNext or GetBulk, the application must work its way up to the next full set of objects for the expression.

被使用。如果请求是GetNext或GetBulk,则应用程序必须一直运行到表达式的下一个完整对象集。

Evaluation of expressions happens at two possible times, depending on the sampling method (delta or absolute) used to evaluate the expression.

根据用于计算表达式的采样方法(增量或绝对),表达式的计算可能在两个时间进行。

If there are no delta or change values in an expression, the evaluation occurs on demand, i.e. when a requester attempts to read the value of the expression. In this case all requesters get a freshly calculated value.

如果表达式中没有增量或更改值,则会根据需要进行求值,即当请求者尝试读取表达式的值时。在这种情况下,所有请求者都会得到一个新计算的值。

For expressions with delta or change values, evaluation goes on continuously, every sample period. In this case requesters get the value as of the last sample period. For any given sample period of a given expression, only those instances exist that provided a full set of object values. It may be possible that a delta expression which was evaluated successfully for one sample period may not be successfully evaluated in the next sample period. This may, for example, be due to missing instances for some or all of the objects in the expression. In such cases, the value from the previous sample period (with the successful evaluation) must not be carried forward to the next sample period (with the failed evaluation).

对于具有增量或更改值的表达式,计算将在每个采样周期连续进行。在这种情况下,请求者获得上一个采样周期的值。对于给定表达式的任何给定采样周期,仅存在提供完整对象值集的实例。在一个采样周期内成功计算的增量表达式可能无法在下一个采样周期内成功计算。例如,这可能是由于表达式中某些或所有对象缺少实例所致。在这种情况下,上一个采样周期(评估成功)的值不得结转至下一个采样周期(评估失败)。

2.3.4. Value Identification
2.3.4. 价值识别

Values resulting from expression evaluation are identified with a combination of the object identifier (OID) for the data type from expValueTable (such as expValueCounter32Val), the expression owner, the expression name, and an OID fragment.

表达式求值产生的值由expValueTable中数据类型的对象标识符(OID)(例如expValueCounter32Val)、表达式所有者、表达式名称和OID片段的组合标识。

The OID fragment is not an entire OID beginning with iso.dod.org (1.3.6). Rather it begins with 0.0. The remainder is either another 0 when there is no wildcarding or the instance that satisfied the wildcard if there is wildcarding.

OID片段不是以iso.dod.org(1.3.6)开头的完整OID。而是从0.0开始。如果没有通配符,则余数为另一个0;如果有通配符,则余数为满足该通配符的实例。

2.4. Subsets
2.4. 子集

To pare down the Expression MIBs complexity and use of resources an implementor can leave out various parts.

为了降低表达式MIB的复杂性和资源的使用,实现者可以省略各个部分。

2.4.1. No Wildcards
2.4.1. 没有通配符

Leaving out wildcarding significantly reduces the complexity of retrieving values to evaluate expressions and the processing required to do so. Such an implementation would allow expressions made up of

省去通配符大大降低了检索值以计算表达式的复杂性以及执行此操作所需的处理。这样的实现将允许由

individual MIB objects but would not be suitable for expressions applied across large tables as each instance in the table would require a separate expression definition.

单个MIB对象,但不适用于跨大型表应用的表达式,因为表中的每个实例都需要单独的表达式定义。

Furthermore it would not be suitable for tables with arbitrary, dynamic instances, as expressions definitions could not predict what instance values to use.

此外,它不适用于具有任意动态实例的表,因为表达式定义无法预测要使用的实例值。

An implementation without wildcards might be useful for a self-managing system with small tables or few dynamic instances, or one that can do calculations only for a few key objects.

没有通配符的实现对于具有小表或少数动态实例的自我管理系统,或者对于只能对少数关键对象进行计算的系统,可能非常有用。

2.4.2. No Deltas
2.4.2. 无三角洲

Leaving out delta processing significantly reduces state that must be kept and the burden of ongoing processing even when no one is looking at the results. Unfortunately it also makes expressions on counters unusable, as counters have meaning only as deltas.

省略delta处理可以显著降低必须保持的状态,以及即使在没有人查看结果的情况下进行处理的负担。不幸的是,它也使得计数器上的表达式不可用,因为计数器仅具有delta的含义。

An implementation without deltas might be useful for a severely limited, self-managing system that has no need for expressions or events on counters. Although conceivable, such systems would be rare.

对于一个非常有限的自我管理系统来说,没有增量的实现可能非常有用,因为它不需要计数器上的表达式或事件。虽然可以想象,但这样的系统将是罕见的。

2.5. Structure
2.5. 结构

The MIB has the following sections:

MIB包含以下部分:

o Resource -- management of the MIB's use of system resources.

o 资源——管理MIB对系统资源的使用。

o Definition -- definition of expressions.

o 定义——表达式的定义。

o Value -- values of evaluated expressions.

o Value——计算表达式的值。

2.5.1. Resource
2.5.1. 资源

The resource section has objects to manage resource usage by wildcarded delta expressions, a potential major consumer of CPU and memory.

资源部分有一些对象通过通配符增量表达式来管理资源使用情况,通配符增量表达式是CPU和内存的潜在主要消耗者。

2.5.2. Definition
2.5.2. 释义

The definition section contains the tables that define expressions.

定义部分包含定义表达式的表。

The expression table, indexed by expression owner and expression name, contains those parameters that apply to the entire expression, such as the expression itself, the data type of the result, and the sampling interval if it contains delta or change values.

表达式表由表达式所有者和表达式名称索引,包含应用于整个表达式的参数,例如表达式本身、结果的数据类型以及采样间隔(如果它包含增量或更改值)。

The object table, indexed by expression owner, expression name and object index within each expression, contains the parameters that apply to the individual objects that go into the expression, including the object identifier, sample type, discontinuity indicator, and such.

对象表按表达式所有者、表达式名称和每个表达式中的对象索引编制索引,包含应用于表达式中各个对象的参数,包括对象标识符、样本类型、不连续性指示器等。

2.5.3. Value
2.5.3. 价值

The value section contains the values of evaluated expressions.

值部分包含计算表达式的值。

The value table, indexed by expression owner, expression name and instance fragment contains a "discriminated union" of evaluated expression results. For a given expression only one of the columns is instantiated, depending on the result data type for the expression. The instance fragment is a constant or the final section of the object identifier that filled in a wildcard.

由表达式所有者、表达式名称和实例片段索引的值表包含计算表达式结果的“判别并集”。对于给定表达式,根据表达式的结果数据类型,仅实例化其中一列。实例片段是一个常量或填充通配符的对象标识符的最后一部分。

2.6. Examples
2.6. 例子

The examples refer to tables and objects defined below in the MIB itself. They may well make more sense after reading those definitions.

这些示例引用了下面在MIB本身中定义的表和对象。在阅读了这些定义之后,它们可能更有意义。

2.6.1. Wildcarding
2.6.1. 通配符

An expression may use wildcarded MIB objects that result in multiple values for the expression. To specify a wildcarded MIB object a management application leaves off part or all of the instance portion of the object identifier, and sets expObjectWildcard to true(1) for that object. For our example we'll use a counter of total blessings from a table of people. Another table, indexed by town and person has blessings just from that town.

表达式可以使用通配符MIB对象,从而为表达式生成多个值。要指定通配符的MIB对象,管理应用程序将删除对象标识符的部分或全部实例部分,并将该对象的expObjectWildcard设置为true(1)。在我们的示例中,我们将使用来自一张人员表的总祝福计数器。另一个表,按城镇和个人索引,有来自该城镇的祝福。

So the index clauses are:

因此,索引条款是:

personEntry OBJECT-TYPE ... INDEX { personIndex }

personEntry对象类型。。。索引{personIndex}

And:

以及:

townPersonEntry OBJECT-TYPE ... INDEX { townIndex, personIndex }

townPersonEntry对象类型。。。索引{townIndex,personIndex}

In our friendly application we may have entered our expression as:

在我们的友好申请中,我们可能输入了我们的表达方式:

       100 * townPersonBlessings.976.* / personBlessings.*
        
       100 * townPersonBlessings.976.* / personBlessings.*
        

What goes in expExpression is:

Expression中的内容是:

100*$1/$2

100*$1/$2

For example purposes we'll use some slightly far-fetched OIDs. The People MIB is 1.3.6.1.99.7 and the Town MIB is 1.3.6.1.99.11, so for our two counters the OIDs are:

例如,我们将使用一些稍微牵强的OID。人员MIB为1.3.6.1.99.7,城镇MIB为1.3.6.1.99.11,因此我们的两个计数器的OID为:

personBlessings 1.3.6.1.99.7.1.3.1.4 townPersonBlessings 1.3.6.1.99.11.1.2.1.9

个人祝福1.3.6.1.99.7.1.3.1.4城镇个人祝福1.3.6.1.99.11.1.2.1.9

The rule for wildcards is that all the wildcarded parts have to match exactly. In this case that means we have to hardwire the town and only the personIndex can be wildcarded. So our values for expObjectID are:

通配符的规则是所有通配符部分必须完全匹配。在这种情况下,这意味着我们必须硬连线城镇,只有personIndex可以通配符。因此,我们的ExpoObjectId值为:

1.3.6.1.99.7.1.3.1.4 1.3.6.1.99.11.1.2.1.9.976

1.3.6.1.99.7.1.3.1.4 1.3.6.1.99.11.1.2.1.9.976

We're hardwired to townIndex 976 and personIndex is allowed to vary.

我们硬连线到townIndex 976,personIndex允许变化。

The value of expExpressionPrefix can be either of those two counter OIDs (including the instance fragment in the second case), since either of them takes you to a MIB definition where you can look at the INDEX clause and figure out what's been left off. What's been left off doesn't have to work out to be the same object, but it does have to work out to be the same values (semantics) for the result to make sense. Note that the managed system can not typically check such semantics and if given nonsense will return nonsense.

expExpressionPrefix的值可以是这两个计数器OID中的任意一个(包括第二种情况下的实例片段),因为它们中的任何一个都会将您带到MIB定义,您可以在其中查看INDEX子句并找出遗漏了什么。被省略的内容不一定是同一个对象,但它必须是相同的值(语义)才能使结果有意义。请注意,托管系统通常无法检查此类语义,如果给定无意义,则将返回无意义。

If we have people numbered 6, 19, and 42 in town number 976, the successive values of expValueInstance will be:

如果在城镇编号976中有编号为6、19和42的人员,则expValueInstance的连续值将为:

0.0.6 0.0.19 0.0.42

0.0.6 0.0.19 0.0.42

So there will be three values in expValueTable, with those OIDs as the expValueInstance part of their indexing.

因此,expValueTable中将有三个值,这些OID作为其索引的expValueInstance部分。

2.6.2. Calculation and Conditional
2.6.2. 计算和条件

The following formula for line utilization of a half-duplex link is adapted from [PracPersp].

以下半双工链路的线路利用率公式改编自[PracPersp]。

    utilization = (ifInOctets + ifOutOctets) * 800 / seconds / ifSpeed
        
    utilization = (ifInOctets + ifOutOctets) * 800 / seconds / ifSpeed
        

The expression results in the percentage line utilization per second. The total octets are multiplied by 8 to get bits and 100 to scale up the percentage as an integer.

该表达式产生每秒行利用率的百分比。总的八位字节数乘以8得到位,再乘以100将百分比放大为整数。

The following Expression MIB object values implement this as an expression for all ifIndexes that directly represent actual hardware. Since the octet counters are Counter32 values, they must be delta sampled to be meaningful. The sample period is 6 seconds but for accuracy and independence is calculated as a delta of sysUpTime.

以下表达式MIB对象值将其作为直接表示实际硬件的所有IFINDEX的表达式来实现。由于八位字节计数器是计数器32值,因此必须对其进行增量采样才能使其有意义。采样周期为6秒,但对于准确性和独立性,计算为系统正常运行时间的增量。

The expObjectTable entry for ifInOctets has an expObjectConditional that checks for being a hardware interface. Only one object in the expression needs that check associated, since it applies to the whole expression. Since ifConnectorPresent is a TruthValue with values of 1 or 2 rather than 0 and non-zero, it must also be in an expression rather than used directly for the conditional.

ifInOctets的expObjectTable项具有一个expObjectConditional,用于检查是否为硬件接口。表达式中只有一个对象需要关联该检查,因为它应用于整个表达式。由于ifConnectorPresent是值为1或2而不是0且非零的TruthValue,因此它也必须位于表达式中,而不是直接用于条件表达式。

The interface-specific discontinuity indicator is supplied only for ifInOctets since invalidating that sample will invalidate an attempt at evaluation, effectively invalidating ifOutOctets as well (correctly, because it has the same indicator).

接口特定的不连续性指示器仅为ifInOctets提供,因为使该样本无效将使评估尝试无效,同时也有效地使ifOutOctets无效(正确,因为它具有相同的指示器)。

For notational clarity, in the rest of this document, a string in quotes as part of the object instance indicates the value that would actually be one subidentifier per byte. The objects all belong to owner "me".

为清楚起见,在本文档的其余部分中,作为对象实例一部分的引号中的字符串表示实际为每个字节一个子标识符的值。这些物品都属于主人“我”。

Also for clarity OIDs are expressed as the object descriptor and instance. In fact they must be supplied numerically, with all subidentifiers in place before the part for the particular object and instance.

同样为了清楚起见,OID被表示为对象描述符和实例。事实上,它们必须以数字形式提供,并且在特定对象和实例的零件之前放置所有子标识符。

What the user would set in expExpressionTable:

用户将在expExpressionTable中设置的内容:

   expExpression.2."me".4."hard"      = "$1==1"
   expExpressionValueType.2."me".4."hard"  = unsigned32
   expExpressionRowStatus.2."me"4."hard"   = 'active'
        
   expExpression.2."me".4."hard"      = "$1==1"
   expExpressionValueType.2."me".4."hard"  = unsigned32
   expExpressionRowStatus.2."me"4."hard"   = 'active'
        
   expExpression.2."me".4."util"      = "($1+$2)*800/$4/$3"
   expExpressionValueType.2."me".4."util"  = integer32
   expExpressionDeltaInterval.2."me".4."util"   = 6
   expExpressionRowStatus.2."me"4."util"   = 'active'
        
   expExpression.2."me".4."util"      = "($1+$2)*800/$4/$3"
   expExpressionValueType.2."me".4."util"  = integer32
   expExpressionDeltaInterval.2."me".4."util"   = 6
   expExpressionRowStatus.2."me"4."util"   = 'active'
        

What the user would set in expObjectTable:

用户将在ExpoObjectTable中设置的内容:

expObjectID.2."me".4."hard".1 = ifConnectorPresent expObjectWildcard.2."me".4."hard".1 = 'true' expObjectSampleType.2."me".4."hard".1 = 'absoluteValue' expObjectRowStatus.2."me".4."hard".1 = 'active'

expObjectID.2.“me”.4.“hard”.1=IfConnectorPresentExpObjectWildcard.2.“me”.4.“hard”.1='true'expObjectSampleType.2.“me”.4.“hard”.1='absoluteValue'expObjectRowStatus.2.“me”.4.“hard”.1='active'

expObjectID.2."me".4."util".1 = ifInOctets expObjectWildcard.2."me".4."util".1 = 'true' expObjectSampleType.2."me".4."util".1 = 'deltaValue' expObjectConditional.2."me".4."util".1 = expValueUnsigned32Val.4."hard".0.0 expObjectConditionalWildcard.2."me".4."util".1 = 'true' expObjectDiscontinuityID.2."me".4."util".1 = ifCounterDiscontinuityTime expObjectDiscontinuityIDWildcard.2."me".4."util".1 = 'true' expObjectRowStatus.2."me".4."util".1 = 'active'

expObjectID.2.“me”.4.“util”.1=ifInOctets expobject通配符.2.“me”.4.“util”.1='true'expObjectSampleType.2.“me”.4.“util”.1='deltaValue'expObjectConditional.2.“me”.4.“util”.1=expValueUnsigned32Val.4.“hard”.0.0 expObjectConditional通配符.2.“me”.4.“util”.1='true'expobject.2.“me”.4.“util”.1=IfCounterInterructionTime ExpoObjectInterructionIdWildCard.2.“me”.4.“util”.1='true'ExpoObjectRowStatus.2.“me”.4.“util”.1='active'

expObjectID.2."me".4."util".2 = ifOutOctets expObjectWildcard.2."me".4."util".2 = 'true' expObjectSampleType.2."me".4."util".2 = 'deltaValue' expObjectRowStatus.2."me".4."util".2 = 'active'

expObjectID.2.“me”.4.“util”.2=ifOutOctets expObjectWildcard.2.“me”.4.“util”.2='true'expObjectSampleType.2.“me”.4.“util”.2='deltaValue'expObjectRowStatus.2.“me”.4.“util”.2='active'

expObjectID.2."me".4."util".3 = ifSpeed expObjectWildcard.2."me".4."util".3 = 'true' expObjectSampleType.2."me".4."util".3 = 'absoluteValue' expObjectRowStatus.2."me".4."util".3 = 'active'

expObjectID.2.“me”.4.“util”.3=ifSpeed expobject通配符.2.“me”.4.“util”.3='true'expObjectSampleType.2.“me”.4.“util”.3='absoluteValue'expObjectRowStatus.2.“me”.4.“util”.3='active'

expObjectID.2."me".4."util".4 = sysUpTime.0 expObjectWildcard.2."me".4."util".4 = 'false' expObjectSampleType.2."me".4."util".4 = 'deltaValue' expObjectRowStatus.2."me".4."util".4 = 'active'

expObjectID.2.me.4.util.4=sysUpTime.0 expObjectWildcard.2.me.4.util.4='false'expObjectSampleType.2.me.4.util.4='deltaValue'expObjectRowStatus.2.me.4.util.4='active'

These settings will result in populating one column of expValueTable:

这些设置将导致填充expValueTable的一列:

expValueInteger32Val.2."me".4."util".0.0.?

expValueInteger32Val.2.“me”.4.“util”.0.0。?

The subidentifier represented by "?" above represents one subidentifier that takes on a value of ifIndex and identifies a row for each ifIndex value where ifConnectorPresent is 'true' and the interface was present for two samples to provide a delta.

上面由“?”表示的子标识符表示一个子标识符,该子标识符采用ifIndex值,并为每个ifIndex值标识一行,其中ifConnectorPresent为“true”,且接口用于两个样本以提供增量。

This value could in turn be used as an event threshold [RFC2981] to watch for overutilization of all hardware network connections.

该值可以反过来用作事件阈值[RFC2981],以监视所有硬件网络连接的过度利用。

3. Definitions
3. 定义
DISMAN-EXPRESSION-MIB DEFINITIONS ::= BEGIN
        
DISMAN-EXPRESSION-MIB DEFINITIONS ::= BEGIN
        

IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Integer32, Gauge32, Unsigned32, Counter32, Counter64, IpAddress, TimeTicks, mib-2, zeroDotZero FROM SNMPv2-SMI RowStatus, TruthValue, TimeStamp FROM SNMPv2-TC sysUpTime FROM SNMPv2-MIB SnmpAdminString FROM SNMP-FRAMEWORK-MIB MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF;

从SNMPv2 SMI RowStatus导入模块标识、对象类型、整数32、量规32、无符号32、计数器32、计数器64、IP地址、时间刻度、mib-2、零点零从SNMPv2 SMI RowStatus导入时间戳从SNMPv2 TC sysUpTime从SNMPv2 mib导入时间戳从SNMPv2 mib从SNMP-FRAMEWORK导入时间戳从SNMPadministration从SNMPv2 CONF导入对象组;

dismanExpressionMIB MODULE-IDENTITY LAST-UPDATED "200010160000Z" -- 16 October 2000 ORGANIZATION "IETF Distributed Management Working Group" CONTACT-INFO "Ramanathan Kavasseri Cisco Systems, Inc. 170 West Tasman Drive, San Jose CA 95134-1706. Phone: +1 408 527 2446 Email: ramk@cisco.com" DESCRIPTION "The MIB module for defining expressions of MIB objects for management purposes." -- Revision History

DismanePressionMIB MODULE-IDENTITY最近更新的“200010160000Z”-2000年10月16日组织“IETF分布式管理工作组”联系方式“Ramanathan Kavasseri Cisco Systems,Inc.,地址:加利福尼亚州圣何塞市西塔斯曼大道170号95134-1706。电话:+1 408 527 2446电子邮件:ramk@cisco.com“说明“用于为管理目的定义MIB对象表达式的MIB模块。”--修订历史记录

       REVISION     "200010160000Z" -- 16 October 2000
       DESCRIPTION  "This is the initial version of this MIB.
                    Published as RFC 2982"
    ::= { mib-2 90 }
        
       REVISION     "200010160000Z" -- 16 October 2000
       DESCRIPTION  "This is the initial version of this MIB.
                    Published as RFC 2982"
    ::= { mib-2 90 }
        
dismanExpressionMIBObjects OBJECT IDENTIFIER ::=
                                            { dismanExpressionMIB 1 }
        
dismanExpressionMIBObjects OBJECT IDENTIFIER ::=
                                            { dismanExpressionMIB 1 }
        
expResource    OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 1 }
expDefine OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 2 }
expValue  OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 3 }
        
expResource    OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 1 }
expDefine OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 2 }
expValue  OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 3 }
        

-- -- Resource Control --

----资源控制--

expResourceDeltaMinimum OBJECT-TYPE SYNTAX Integer32 (-1 | 1..600) UNITS "seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "The minimum expExpressionDeltaInterval this system will accept. A system may use the larger values of this minimum to lessen the impact of constantly computing deltas. For larger delta sampling intervals the system samples less often and suffers less overhead. This object provides a way to enforce such lower overhead for all expressions created after it is set.

expResourceDeltaMinum对象类型语法整数32(-1 | 1..600)单位“秒”最大访问读写状态当前说明“此系统将接受的最低expExpressionDeltaInterval。系统可以使用此最小值的较大值来减少不断计算增量的影响。对于较大的增量采样间隔,系统采样频率较低,开销较小。该对象提供了一种方法,可以对设置后创建的所有表达式强制执行这种较低的开销。

The value -1 indicates that expResourceDeltaMinimum is irrelevant as the system will not accept 'deltaValue' as a value for expObjectSampleType.

值-1表示expResourceDeltaMinimum不相关,因为系统不会接受“deltaValue”作为expObjectSampleType的值。

Unless explicitly resource limited, a system's value for this object should be 1, allowing as small as a 1 second interval for ongoing delta sampling.

除非明确限制资源,否则此对象的系统值应为1,允许进行增量采样的间隔最短为1秒。

     Changing this value will not invalidate an existing setting
     of expObjectSampleType."
    ::= { expResource 1 }
        
     Changing this value will not invalidate an existing setting
     of expObjectSampleType."
    ::= { expResource 1 }
        

expResourceDeltaWildcardInstanceMaximum OBJECT-TYPE SYNTAX Unsigned32 UNITS "instances" MAX-ACCESS read-write STATUS current DESCRIPTION "For every instance of a deltaValue object, one dynamic instance entry is needed for holding the instance value from the previous sample, i.e. to maintain state.

expResourceDeltaWildcardInstanceMaximum对象类型语法Unsigned32单元“实例”MAX-ACCESS读写状态当前描述对于deltaValue对象的每个实例,需要一个动态实例条目来保存上一个示例中的实例值,即维护状态。

This object limits maximum number of dynamic instance entries this system will support for wildcarded delta objects in expressions. For a given delta expression, the number of dynamic instances is the number of values that meet all criteria to exist times the number of delta values in the expression.

此对象限制此系统在表达式中支持的通配符增量对象的最大动态实例条目数。对于给定的增量表达式,动态实例的数量是满足所有条件的值的数量乘以表达式中的增量值的数量。

A value of 0 indicates no preset limit, that is, the limit is dynamic based on system operation and resources.

值为0表示没有预设限制,即限制是基于系统操作和资源的动态限制。

Unless explicitly resource limited, a system's value for this object should be 0.

除非明确限制资源,否则此对象的系统值应为0。

Changing this value will not eliminate or inhibit existing delta wildcard instance objects but will prevent the creation of more such objects.

更改此值不会消除或禁止现有的增量通配符实例对象,但会阻止创建更多此类对象。

     An attempt to allocate beyond the limit results in expErrorCode
     being tooManyWildcardValues for that evaluation attempt."
    ::= { expResource 2 }
        
     An attempt to allocate beyond the limit results in expErrorCode
     being tooManyWildcardValues for that evaluation attempt."
    ::= { expResource 2 }
        
expResourceDeltaWildcardInstances OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The number of currently active instance entries as
     defined for expResourceDeltaWildcardInstanceMaximum."
    ::= { expResource 3 }
        
expResourceDeltaWildcardInstances OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The number of currently active instance entries as
     defined for expResourceDeltaWildcardInstanceMaximum."
    ::= { expResource 3 }
        
expResourceDeltaWildcardInstancesHigh OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The highest value of expResourceDeltaWildcardInstances
     that has occurred since initialization of the managed
     system."
    ::= { expResource 4 }
        
expResourceDeltaWildcardInstancesHigh OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The highest value of expResourceDeltaWildcardInstances
     that has occurred since initialization of the managed
     system."
    ::= { expResource 4 }
        
expResourceDeltaWildcardInstanceResourceLacks OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The number of times this system could not evaluate an
     expression because that would have created a value instance in
     excess of expResourceDeltaWildcardInstanceMaximum."
    ::= { expResource 5 }
        
expResourceDeltaWildcardInstanceResourceLacks OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "instances"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The number of times this system could not evaluate an
     expression because that would have created a value instance in
     excess of expResourceDeltaWildcardInstanceMaximum."
    ::= { expResource 5 }
        

--

--

-- Definition
--
-- Expression Definition Table
--
        
-- Definition
--
-- Expression Definition Table
--
        

expExpressionTable OBJECT-TYPE

expExpressionTable对象类型

    SYNTAX      SEQUENCE OF ExpExpressionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of expression definitions."
    ::= { expDefine 1 }
        
    SYNTAX      SEQUENCE OF ExpExpressionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of expression definitions."
    ::= { expDefine 1 }
        

expExpressionEntry OBJECT-TYPE SYNTAX ExpExpressionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Information about a single expression. New expressions can be created using expExpressionRowStatus.

expExpressionEntry对象类型语法expExpressionEntry MAX-ACCESS不可访问状态当前描述“有关单个表达式的信息。可以使用ExpressionRowStatus创建新表达式。

To create an expression first create the named entry in this table. Then use expExpressionName to populate expObjectTable. For expression evaluation to succeed all related entries in expExpressionTable and expObjectTable must be 'active'. If these conditions are not met the corresponding values in expValue simply are not instantiated.

要创建表达式,请首先在此表中创建命名项。然后使用expExpressionName填充expObjectTable。要使表达式计算成功,expExpressionTable和expObjectTable中的所有相关项都必须为“活动”。如果不满足这些条件,则expValue中的相应值不会被实例化。

Deleting an entry deletes all related entries in expObjectTable and expErrorTable.

删除条目将删除ExpectTable和Expertable中的所有相关条目。

Because of the relationships among the multiple tables for an expression (expExpressionTable, expObjectTable, and expValueTable) and the SNMP rules for independence in setting object values, it is necessary to do final error checking when an expression is evaluated, that is, when one of its instances in expValueTable is read or a delta interval expires. Earlier checking need not be done and an implementation may not impose any ordering on the creation of objects related to an expression.

由于表达式的多个表(ExpExpExpressionTable、expObjectTable和expValueTable)之间的关系以及设置对象值的独立性的SNMP规则,因此在计算表达式时需要执行最终错误检查,即,当expValueTable中的一个实例被读取或增量间隔过期时。不需要进行早期检查,并且实现可能不会对与表达式相关的对象的创建施加任何顺序。

To maintain security of MIB information, when creating a new row in this table, the managed system must record the security credentials of the requester. These security credentials are the parameters necessary as inputs to isAccessAllowed from the Architecture for

为了维护MIB信息的安全性,在该表中创建新行时,托管系统必须记录请求者的安全凭据。这些安全凭据是必要的参数,作为从的体系结构允许的ISACCESS输入

Describing SNMP Management Frameworks. When obtaining the objects that make up the expression, the system must (conceptually) use isAccessAllowed to ensure that it does not violate security.

描述SNMP管理框架。获取构成表达式的对象时,系统必须(概念上)使用isAccessAllowed以确保它不会违反安全性。

The evaluation of the expression takes place under the security credentials of the creator of its expExpressionEntry.

表达式的计算在ExpressionEntry的创建者的安全凭据下进行。

Values of read-write objects in this table may be changed

此表中读写对象的值可能会更改

     at any time."
    INDEX       { expExpressionOwner, expExpressionName }
    ::= { expExpressionTable 1 }
        
     at any time."
    INDEX       { expExpressionOwner, expExpressionName }
    ::= { expExpressionTable 1 }
        
ExpExpressionEntry ::= SEQUENCE {
    expExpressionOwner           SnmpAdminString,
    expExpressionName             SnmpAdminString,
    expExpression                OCTET STRING,
    expExpressionValueType       INTEGER,
    expExpressionComment         SnmpAdminString,
    expExpressionDeltaInterval   Integer32,
    expExpressionPrefix           OBJECT IDENTIFIER,
    expExpressionErrors          Counter32,
    expExpressionEntryStatus     RowStatus
}
        
ExpExpressionEntry ::= SEQUENCE {
    expExpressionOwner           SnmpAdminString,
    expExpressionName             SnmpAdminString,
    expExpression                OCTET STRING,
    expExpressionValueType       INTEGER,
    expExpressionComment         SnmpAdminString,
    expExpressionDeltaInterval   Integer32,
    expExpressionPrefix           OBJECT IDENTIFIER,
    expExpressionErrors          Counter32,
    expExpressionEntryStatus     RowStatus
}
        
expExpressionOwner OBJECT-TYPE
   SYNTAX      SnmpAdminString (SIZE(0..32))
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
     "The owner of this entry. The exact semantics of this
     string are subject to the security policy defined by the
     security administrator."
    ::= { expExpressionEntry 1 }
        
expExpressionOwner OBJECT-TYPE
   SYNTAX      SnmpAdminString (SIZE(0..32))
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
     "The owner of this entry. The exact semantics of this
     string are subject to the security policy defined by the
     security administrator."
    ::= { expExpressionEntry 1 }
        
expExpressionName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "The name of the expression.  This is locally unique, within
     the scope of an expExpressionOwner."
    ::= { expExpressionEntry 2 }
        
expExpressionName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "The name of the expression.  This is locally unique, within
     the scope of an expExpressionOwner."
    ::= { expExpressionEntry 2 }
        

expExpression OBJECT-TYPE SYNTAX OCTET STRING (SIZE (1..1024)) MAX-ACCESS read-create STATUS current DESCRIPTION "The expression to be evaluated. This object is the same as a DisplayString (RFC 1903) except for its maximum length.

expExpression对象类型语法八位字节字符串(大小(1..1024))MAX-ACCESS read create STATUS current DESCRIPTION“要计算的表达式。此对象与DisplayString(RFC 1903)相同,只是最大长度不同。

Except for the variable names the expression is in ANSI C syntax. Only the subset of ANSI C operators and functions listed here is allowed.

除变量名外,表达式采用ANSI C语法。仅允许使用此处列出的ANSI C运算符和函数的子集。

Variables are expressed as a dollar sign ('$') and an

变量表示为美元符号(“$”)和

integer that corresponds to an expObjectIndex. An example of a valid expression is:

与ExpoObjectIndex相对应的整数。有效表达式的一个示例是:

($1-$5)*100

($1-$5)*100

Expressions must not be recursive, that is although an expression may use the results of another expression, it must not contain any variable that is directly or indirectly a result of its own evaluation. The managed system must check for recursive expressions.

表达式不能是递归的,也就是说,尽管一个表达式可以使用另一个表达式的结果,但它不能包含任何直接或间接作为其自身计算结果的变量。托管系统必须检查递归表达式。

The only allowed operators are:

唯一允许的操作员是:

          ( )
          - (unary)
          + - * / %
          & | ^ << >> ~
          ! && || == != > >= < <=
        
          ( )
          - (unary)
          + - * / %
          & | ^ << >> ~
          ! && || == != > >= < <=
        

Note the parentheses are included for parenthesizing the expression, not for casting data types.

注意:括号用于将表达式括起来,而不是用于转换数据类型。

The only constant types defined are:

定义的唯一常量类型为:

int (32-bit signed) long (64-bit signed) unsigned int unsigned long hexadecimal character string oid

int(32位有符号)长(64位有符号)无符号int无符号长十六进制字符串oid

The default type for a positive integer is int unless it is too large in which case it is long.

正整数的默认类型是int,除非它太大,在这种情况下它是长的。

All but oid are as defined for ANSI C. Note that a hexadecimal constant may end up as a scalar or an array of 8-bit integers. A string constant is enclosed in double quotes and may contain back-slashed individual characters as in ANSI C.

除oid外,其他所有变量都是为ANSI C定义的。请注意,十六进制常量可能最终成为标量或8位整数数组。字符串常量包含在双引号中,可能包含反斜杠字符,如ANSI C中所示。

An oid constant comprises 32-bit, unsigned integers and at least one period, for example:

oid常量由32位无符号整数和至少一个周期组成,例如:

0. .0 1.3.6.1

0. .0 1.3.6.1

No additional leading or trailing subidentifiers are automatically added to an OID constant. The constant is taken as expressed.

不会将其他前导或尾随子标识符自动添加到OID常量中。该常数取表达式。

Integer-typed objects are treated as 32- or 64-bit, signed or unsigned integers, as appropriate. The results of mixing them are as for ANSI C, including the type of the result. Note that a 32-bit value is thus promoted to 64 bits only in an operation with a 64-bit value. There is no provision for larger values to handle overflow.

整数类型的对象视情况被视为32位或64位、有符号或无符号整数。混合它们的结果与ANSI C相同,包括结果的类型。请注意,32位值因此仅在具有64位值的操作中提升为64位。没有提供更大的值来处理溢出。

Relative to SNMP data types, a resulting value becomes unsigned when calculating it uses any unsigned value, including a counter. To force the final value to be of data type counter the expression must explicitly use the counter32() or counter64() function (defined below).

相对于SNMP数据类型,结果值在使用任何无符号值(包括计数器)进行计算时变为无符号。要强制最终值为数据类型counter,表达式必须显式使用counter32()或counter64()函数(定义如下)。

OCTET STRINGS and OBJECT IDENTIFIERs are treated as one-dimensioned arrays of unsigned 8-bit integers and unsigned 32-bit integers, respectively.

八位字符串和对象标识符分别被视为无符号8位整数和无符号32位整数的一维数组。

IpAddresses are treated as 32-bit, unsigned integers in network byte order, that is, the hex version of 255.0.0.0 is 0xff000000.

IP地址按网络字节顺序视为32位无符号整数,即255.0.0.0的十六进制版本为0xff000000。

Conditional expressions result in a 32-bit, unsigned integer of value 0 for false or 1 for true. When an arbitrary value is used as a boolean 0 is false and non-zero is true.

条件表达式生成一个32位无符号整数,值为0表示false,值为1表示true。当任意值用作布尔值时,0为false,非零为true。

Rules for the resulting data type from an operation, based on the operator:

基于运算符的操作产生的数据类型规则:

For << and >> the result is the same as the left hand operand.

对于<<和>>而言,结果与左侧操作数相同。

For &&, ||, ==, !=, <, <=, >, and >= the result is always Unsigned32.

对于&&,| |,=,!=,<,<,<=,>,和>=结果始终为无符号32。

For unary - the result is always Integer32.

对于一元-结果总是整数32。

For +, -, *, /, %, &, |, and ^ the result is promoted according to the following rules, in order from most to least preferred:

对于+、-、*、/、%、&、|和^,将根据以下规则按从最优先到最不优先的顺序提升结果:

If left hand and right hand operands are the same type, use that.

如果左手操作数和右手操作数的类型相同,请使用该类型。

If either side is Counter64, use that.

如果任何一方是计数器64,则使用该计数器。

If either side is IpAddress, use that.

如果任意一方是IpAddress,请使用该地址。

If either side is TimeTicks, use that.

如果任一侧为TimeTicks,则使用该选项。

If either side is Counter32, use that.

如果任何一方是32号计数器,则使用该计数器。

Otherwise use Unsigned32.

否则使用Unsigned32。

The following rules say what operators apply with what data types. Any combination not explicitly defined does not work.

以下规则说明了哪些运算符适用于哪些数据类型。任何未明确定义的组合都不起作用。

For all operators any of the following can be the left hand or right hand operand: Integer32, Counter32, Unsigned32, Counter64.

对于所有运算符,以下任意操作数都可以是左手或右手操作数:整数32、计数器32、无符号32、计数器64。

The operators +, -, *, /, %, <, <=, >, and >= work with TimeTicks.

运算符+、-、*、/、%、<、<、<=、>、和>=使用时间刻度。

The operators &, |, and ^ work with IpAddress.

运算符&、|和^使用IpAddress。

The operators << and >> work with IpAddress but only as the left hand operand.

运算符<<和>>使用IpAddress,但仅作为左手操作数。

The + operator performs a concatenation of two OCTET STRINGs or two OBJECT IDENTIFIERs.

+运算符执行两个八位字符串或两个对象标识符的串联。

The operators &, | perform bitwise operations on OCTET STRINGs. If the OCTET STRING happens to be a DisplayString the results may be meaningless, but the agent system does not check this as some such systems do not have this information.

运算符&、|对八位字符串执行位运算。如果八位字节字符串恰好是一个DisplayString,则结果可能没有意义,但代理系统不会对此进行检查,因为某些这样的系统没有此信息。

The operators << and >> perform bitwise operations on OCTET STRINGs appearing as the left hand operand.

运算符<<和>>对显示为左手操作数的八位字符串执行位运算。

The only functions defined are:

定义的功能只有:

counter32 counter64 arraySection stringBegins stringEnds stringContains oidBegins oidEnds oidContains average maximum minimum sum exists

counter32 counter64 arraySection stringBegins stringEnds stringContains OIDs OIDs OIDs OIDs平均最大最小和存在

The following function definitions indicate their parameters by naming the data type of the parameter in the parameter's position in the parameter list. The parameter must be of the type indicated and generally may be a constant, a MIB object, a function, or an expression.

以下函数定义通过在参数列表中的参数位置命名参数的数据类型来指示其参数。参数必须是指定的类型,通常可以是常量、MIB对象、函数或表达式。

counter32(integer) - wrapped around an integer value counter32 forces Counter32 as a data type.

counter32(integer)-环绕整数值counter32强制将counter32作为数据类型。

counter64(integer) - similar to counter32 except that the resulting data type is 'counter64'.

counter64(整数)-与counter32类似,不同之处在于生成的数据类型为“counter64”。

arraySection(array, integer, integer) - selects a piece of an array (i.e. part of an OCTET STRING or OBJECT IDENTIFIER). The integer arguments are in the range 0 to 4,294,967,295. The first is an initial array index (one-dimensioned) and the second is an ending array index. A value of 0 indicates first or last element, respectively. If the first element is larger than the array length the result is 0 length. If the second integer is less than or equal to the first, the result is 0 length. If the second is larger than the array length it indicates last element.

arraySection(数组、整数、整数)-选择数组的一部分(即八位字节字符串或对象标识符的一部分)。整数参数的范围为0到4294967295。第一个是初始数组索引(一维),第二个是结束数组索引。值0分别表示第一个或最后一个元素。如果第一个元素大于数组长度,则结果为0长度。如果第二个整数小于或等于第一个整数,则结果为0长度。如果第二个大于数组长度,则表示最后一个元素。

stringBegins/Ends/Contains(octetString, octetString) - looks for the second string (which can be a string constant) in the first and returns the one-dimensioned arrayindex where the match began. A return value of 0 indicates no match (i.e. boolean false).

stringBegins/Ends/Contains(octetString,octetString)-在第一个字符串中查找第二个字符串(可以是字符串常量),并返回匹配开始的一维arrayindex。返回值为0表示不匹配(即布尔值为false)。

oidBegins/Ends/Contains(oid, oid) - looks for the second OID (which can be an OID constant) in the first and returns the the one-dimensioned index where the match began. A return value of 0 indicates no match (i.e. boolean false).

oid开始/结束/包含(oid,oid)-在第一个oid中查找第二个oid(可以是oid常量),并返回匹配开始的一维索引。返回值为0表示不匹配(即布尔值为false)。

average/maximum/minimum(integer) - calculates the average, minimum, or maximum value of the integer valued object over multiple sample times. If the object disappears for any sample period, the accumulation and the resulting value object cease to exist until the object reappears at which point the calculation starts over.

平均值/最大值/最小值(整数)-计算多个采样时间内整数值对象的平均值、最小值或最大值。如果对象在任何采样周期内消失,则累加和结果值对象将停止存在,直到对象重新出现,此时计算将重新开始。

sum(integerObject*) - sums all available values of the wildcarded integer object, resulting in an integer scalar. Must be used with caution as it wraps on overflow with no notification.

sum(integerObject*)-对通配符整型对象的所有可用值求和,生成整型标量。必须小心使用,因为它在溢出时不会发出通知。

exists(anyTypeObject) - verifies the object instance exists. A return value of 0 indicates NoSuchInstance (i.e. boolean false)."

exists(anyTypeObject)-验证对象实例是否存在。返回值为0表示无任何实例(即布尔值为false)。”

    ::= { expExpressionEntry 3 }
        
    ::= { expExpressionEntry 3 }
        

expExpressionValueType OBJECT-TYPE SYNTAX INTEGER { counter32(1), unsigned32(2), timeTicks(3), integer32(4), ipAddress(5), octetString(6), objectId(7), counter64(8) } MAX-ACCESS read-create STATUS current DESCRIPTION "The type of the expression value. One and only one of the value objects in expValueTable will be instantiated to match this type.

expExpressionValueType对象类型语法整型{counter32(1),unsigned32(2),timeTicks(3),integer32(4),ipAddress(5),octetString(6),objectId(7),counter64(8)}MAX-ACCESS read create STATUS current DESCRIPTION“表达式值的类型。expValueTable中的一个且只有一个值对象将被实例化以匹配此类型。

     If the result of the expression can not be made into this type,
     an invalidOperandType error will occur."
    DEFVAL      { counter32 }
    ::= { expExpressionEntry 4 }
        
     If the result of the expression can not be made into this type,
     an invalidOperandType error will occur."
    DEFVAL      { counter32 }
    ::= { expExpressionEntry 4 }
        
expExpressionComment OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
     "A comment to explain the use or meaning of the expression."
    DEFVAL      { ''H }
    ::= { expExpressionEntry 5 }
        
expExpressionComment OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
     "A comment to explain the use or meaning of the expression."
    DEFVAL      { ''H }
    ::= { expExpressionEntry 5 }
        

expExpressionDeltaInterval OBJECT-TYPE SYNTAX Integer32 (0..86400) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "Sampling interval for objects in this expression with expObjectSampleType 'deltaValue'.

expexpexpressioneltainterval对象类型语法整数32(0..86400)单位“秒”最大访问读取创建状态当前描述“expObjectSampleType为'deltaValue'的此表达式中对象的采样间隔”。

This object has no effect if the the expression has no deltaValue objects.

如果表达式没有deltaValue对象,则此对象无效。

A value of 0 indicates no automated sampling. In this case the delta is the difference from the last time the expression was evaluated. Note that this is subject to unpredictable delta times in the face of retries or multiple managers.

值为0表示没有自动采样。在这种情况下,增量是与上次计算表达式时的差值。请注意,面对重试或多个管理器,这会受到不可预测的增量时间的影响。

A value greater than zero is the number of seconds between automated samples.

大于零的值是自动采样之间的秒数。

Until the delta interval has expired once the delta for the

直到增量间隔到期,一旦

object is effectively not instantiated and evaluating the expression has results as if the object itself were not instantiated.

对象实际上没有实例化,对表达式求值的结果就好像对象本身没有实例化一样。

Note that delta values potentially consume large amounts of system CPU and memory. Delta state and processing must continue constantly even if the expression is not being used. That is, the expression is being evaluated every delta interval, even if no application is reading those values. For wildcarded objects this can be substantial overhead.

请注意,增量值可能会消耗大量系统CPU和内存。即使未使用表达式,增量状态和处理也必须持续进行。也就是说,即使没有应用程序读取这些值,表达式也会在每个增量间隔进行求值。对于通配符对象,这可能会带来很大的开销。

     Note that delta intervals, external expression value sampling
     intervals and delta intervals for expressions within other
     expressions can have unusual interactions as they are impossible
     to synchronize accurately.  In general one interval embedded
     below another must be enough shorter that the higher sample
     sees relatively smooth, predictable behavior.  So, for example,
     to avoid the higher level getting the same sample twice, the
     lower level should sample at least twice as fast as the higher
     level does."
    DEFVAL      { 0 }
    ::= { expExpressionEntry 6 }
        
     Note that delta intervals, external expression value sampling
     intervals and delta intervals for expressions within other
     expressions can have unusual interactions as they are impossible
     to synchronize accurately.  In general one interval embedded
     below another must be enough shorter that the higher sample
     sees relatively smooth, predictable behavior.  So, for example,
     to avoid the higher level getting the same sample twice, the
     lower level should sample at least twice as fast as the higher
     level does."
    DEFVAL      { 0 }
    ::= { expExpressionEntry 6 }
        

expExpressionPrefix OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-only STATUS current DESCRIPTION "An object prefix to assist an application in determining the instance indexing to use in expValueTable, relieving the application of the need to scan the expObjectTable to determine such a prefix.

expExpressionPrefix对象类型语法对象标识符MAX-ACCESS只读状态当前描述“一种对象前缀,用于帮助应用程序确定要在expValueTable中使用的实例索引,从而使应用程序无需扫描expObjectTable以确定此前缀。

See expObjectTable for information on wildcarded objects.

有关通配符对象的信息,请参见expObjectTable。

If the expValueInstance portion of the value OID may be treated as a scalar (that is, normally, 0) the value of expExpressionPrefix is zero length, that is, no OID at all. Note that zero length implies a null OID, not the OID 0.0.

如果可以将值OID的expValueInstance部分视为标量(通常为0),则expExpressionPrefix的值为零长度,即根本没有OID。请注意,零长度表示一个空OID,而不是OID 0.0。

     Otherwise, the value of expExpressionPrefix is the expObjectID
     value of any one of the wildcarded objects for the expression.
     This is sufficient, as the remainder, that is, the instance
     fragment relevant to instancing the values, must be the same for
     all wildcarded objects in the expression."
    ::= { expExpressionEntry 7 }
        
     Otherwise, the value of expExpressionPrefix is the expObjectID
     value of any one of the wildcarded objects for the expression.
     This is sufficient, as the remainder, that is, the instance
     fragment relevant to instancing the values, must be the same for
     all wildcarded objects in the expression."
    ::= { expExpressionEntry 7 }
        

expExpressionErrors OBJECT-TYPE

expExpressionErrors对象类型

SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of errors encountered while evaluating this expression.

语法计数器32 MAX-ACCESS只读状态当前描述“计算此表达式时遇到的错误数。

     Note that an object in the expression not being accessible,
     is not considered an error. An example of an inaccessible
     object is when the object is excluded from the view of the
     user whose security credentials are used in the expression
     evaluation. In such cases, it is a legitimate condition
     that causes the corresponding expression value not to be
     instantiated."
    ::= { expExpressionEntry 8 }
        
     Note that an object in the expression not being accessible,
     is not considered an error. An example of an inaccessible
     object is when the object is excluded from the view of the
     user whose security credentials are used in the expression
     evaluation. In such cases, it is a legitimate condition
     that causes the corresponding expression value not to be
     instantiated."
    ::= { expExpressionEntry 8 }
        
expExpressionEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
     "The control that allows creation and deletion of entries."
    ::= { expExpressionEntry 9 }
        
expExpressionEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
     "The control that allows creation and deletion of entries."
    ::= { expExpressionEntry 9 }
        

-- -- Expression Error Table --

----表达式错误表--

expErrorTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ExpErrorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of expression errors."
    ::= { expDefine 2 }
        
expErrorTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ExpErrorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of expression errors."
    ::= { expDefine 2 }
        

expErrorEntry OBJECT-TYPE SYNTAX ExpErrorEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Information about errors in processing an expression.

expErrorEntry对象类型语法expErrorEntry MAX-ACCESS不可访问状态当前描述“有关处理表达式时出错的信息。

Entries appear in this table only when there is a matching expExpressionEntry and then only when there has been an error for that expression as reflected by the error codes defined for expErrorCode." INDEX { expExpressionOwner, expExpressionName }

只有当存在匹配的ExpExpExpressionEntry时,并且只有当该表达式出现错误(由为expErrorCode定义的错误代码反映)时,条目才会显示在此表中。“索引{ExpExpExpressionOwner,ExpExpExpressionName}”

    ::= { expErrorTable 1 }
        
    ::= { expErrorTable 1 }
        
ExpErrorEntry ::= SEQUENCE {
    expErrorTime       TimeStamp,
    expErrorIndex      Integer32,
    expErrorCode       INTEGER,
    expErrorInstance   OBJECT IDENTIFIER
}
        
ExpErrorEntry ::= SEQUENCE {
    expErrorTime       TimeStamp,
    expErrorIndex      Integer32,
    expErrorCode       INTEGER,
    expErrorInstance   OBJECT IDENTIFIER
}
        
expErrorTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value of sysUpTime the last time an error caused a
     failure to evaluate this expression."
    ::= { expErrorEntry 1 }
        
expErrorTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value of sysUpTime the last time an error caused a
     failure to evaluate this expression."
    ::= { expErrorEntry 1 }
        
expErrorIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The one-dimensioned character array index into
     expExpression for where the error occurred.  The value
     zero indicates irrelevance."
    ::= { expErrorEntry 2 }
        
expErrorIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The one-dimensioned character array index into
     expExpression for where the error occurred.  The value
     zero indicates irrelevance."
    ::= { expErrorEntry 2 }
        
expErrorCode OBJECT-TYPE
    SYNTAX      INTEGER {
          invalidSyntax(1),
          undefinedObjectIndex(2),
          unrecognizedOperator(3),
          unrecognizedFunction(4),
          invalidOperandType(5),
          unmatchedParenthesis(6),
          tooManyWildcardValues(7),
          recursion(8),
          deltaTooShort(9),
          resourceUnavailable(10),
          divideByZero(11)
          }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The error that occurred.  In the following explanations the
     expected timing of the error is in parentheses.  'S' means
     the error occurs on a Set request.  'E' means the error
        
expErrorCode OBJECT-TYPE
    SYNTAX      INTEGER {
          invalidSyntax(1),
          undefinedObjectIndex(2),
          unrecognizedOperator(3),
          unrecognizedFunction(4),
          invalidOperandType(5),
          unmatchedParenthesis(6),
          tooManyWildcardValues(7),
          recursion(8),
          deltaTooShort(9),
          resourceUnavailable(10),
          divideByZero(11)
          }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The error that occurred.  In the following explanations the
     expected timing of the error is in parentheses.  'S' means
     the error occurs on a Set request.  'E' means the error
        

occurs on the attempt to evaluate the expression either due to Get from expValueTable or in ongoing delta processing.

由于从expValueTable获取或正在进行的增量处理而尝试计算表达式时发生。

invalidSyntax the value sent for expExpression is not valid Expression MIB expression syntax (S) undefinedObjectIndex an object reference ($n) in expExpression does not have a matching instance in expObjectTable (E) unrecognizedOperator the value sent for expExpression held an unrecognized operator (S) unrecognizedFunction the value sent for expExpression held an unrecognized function name (S) invalidOperandType an operand in expExpression is not the right type for the associated operator or result (SE) unmatchedParenthesis the value sent for expExpression is not correctly parenthesized (S) tooManyWildcardValues evaluating the expression exceeded the limit set by expResourceDeltaWildcardInstanceMaximum (E) recursion through some chain of embedded expressions the expression invokes itself (E) deltaTooShort the delta for the next evaluation passed before the system could evaluate the present sample (E) resourceUnavailable some resource, typically dynamic memory, was unavailable (SE) divideByZero an attempt to divide by zero occurred (E)

invalidSyntax为expExpression发送的值无效表达式MIB表达式语法undefinedObjectIndex Expression中的对象引用($n)在expObjectTable中没有匹配的实例(E)unrecognizedOperator为Expression发送的值包含未识别的运算符unrecognizedFunction为ExpExpExpression发送的值包含一个无法识别的函数名invalidOperandType Expression中的操作数不是关联运算符的正确类型,或者结果(SE)不匹配。Parentise为expExpression发送的值未正确插入括号计算表达式的tooManyWildcardValues超过了expResourceDeltaWildcardInstanceMaximum(E)递归设置的限制。通过一些嵌入表达式链,表达式会调用自身(E)DeltToomyWildcardValues在系统计算当前示例(E)之前缩短传递的下一次计算的增量resourceUnavailable某些资源(通常是动态内存)不可用(SE)被零除试图被零除(E)

For the errors that occur when the attempt is made to set expExpression Set request fails with the SNMP error code 'wrongValue'. Such failures refer to the most recent failure to Set expExpression, not to the present value of expExpression which must be either unset or syntactically correct.

对于尝试设置ExpExpExpression set请求失败时发生的错误,SNMP错误代码为“错误值”。此类失败是指最近设置expExpression的失败,而不是Expression的当前值,该值必须是未设置的或语法正确的。

     Errors that occur during evaluation for a Get* operation return
     the SNMP error code 'genErr' except for 'tooManyWildcardValues'
     and 'resourceUnavailable' which return the SNMP error code
     'resourceUnavailable'."
    ::= { expErrorEntry 3 }
        
     Errors that occur during evaluation for a Get* operation return
     the SNMP error code 'genErr' except for 'tooManyWildcardValues'
     and 'resourceUnavailable' which return the SNMP error code
     'resourceUnavailable'."
    ::= { expErrorEntry 3 }
        

expErrorInstance OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-only

expErrorInstance对象类型语法对象标识符MAX-ACCESS只读

    STATUS      current
    DESCRIPTION
     "The expValueInstance being evaluated when the error
     occurred.  A zero-length indicates irrelevance."
    ::= { expErrorEntry 4 }
        
    STATUS      current
    DESCRIPTION
     "The expValueInstance being evaluated when the error
     occurred.  A zero-length indicates irrelevance."
    ::= { expErrorEntry 4 }
        

-- -- Object Table --

----对象表--

expObjectTable OBJECT-TYPE SYNTAX SEQUENCE OF ExpObjectEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of object definitions for each expExpression.

expObjectTable对象类型ExpObjectEntry MAX-ACCESS的语法序列不可访问状态当前描述“每个expExpression的对象定义表。

Wildcarding instance IDs:

通配符实例ID:

     It is legal to omit all or part of the instance portion for
     some or all of the objects in an expression. (See the
     DESCRIPTION of expObjectID for details.  However, note that
     if more than one object in the same expression is wildcarded
     in this way, they all must be objects where that portion of
     the instance is the same.  In other words, all objects may be
     in the same SEQUENCE or in different SEQUENCEs but with the
     same semantic index value (e.g., a value of ifIndex)
     for the wildcarded portion."
    ::= { expDefine 3 }
        
     It is legal to omit all or part of the instance portion for
     some or all of the objects in an expression. (See the
     DESCRIPTION of expObjectID for details.  However, note that
     if more than one object in the same expression is wildcarded
     in this way, they all must be objects where that portion of
     the instance is the same.  In other words, all objects may be
     in the same SEQUENCE or in different SEQUENCEs but with the
     same semantic index value (e.g., a value of ifIndex)
     for the wildcarded portion."
    ::= { expDefine 3 }
        

expObjectEntry OBJECT-TYPE SYNTAX ExpObjectEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Information about an object. An application uses expObjectEntryStatus to create entries in this table while in the process of defining an expression.

expObjectEntry对象类型语法expObjectEntry MAX-ACCESS不可访问状态当前描述“有关对象的信息。在定义表达式的过程中,应用程序使用expObjectEntryStatus在此表中创建项。

     Values of read-create objects in this table may be
     changed at any time."
    INDEX       { expExpressionOwner, expExpressionName, expObjectIndex }
    ::= { expObjectTable 1 }
        
     Values of read-create objects in this table may be
     changed at any time."
    INDEX       { expExpressionOwner, expExpressionName, expObjectIndex }
    ::= { expObjectTable 1 }
        
ExpObjectEntry ::= SEQUENCE {
    expObjectIndex                     Unsigned32,
    expObjectID                        OBJECT IDENTIFIER,
    expObjectIDWildcard                TruthValue,
        
ExpObjectEntry ::= SEQUENCE {
    expObjectIndex                     Unsigned32,
    expObjectID                        OBJECT IDENTIFIER,
    expObjectIDWildcard                TruthValue,
        

expObjectSampleType INTEGER, expObjectDeltaDiscontinuityID OBJECT IDENTIFIER, expObjectDiscontinuityIDWildcard TruthValue, expObjectDiscontinuityIDType INTEGER, expObjectConditional OBJECT IDENTIFIER, expObjectConditionalWildcard TruthValue, expObjectEntryStatus RowStatus }

expObjectSampleType INTEGER、expObjectDeltaDiscontinuityID对象标识符、ExpObjectIntercontinuityIdWildCard TruthValue、ExpObjectIntercontinuityIdType INTEGER、expObjectConditional对象标识符、expObjectConditional通配符TruthValue、expObjectEntryStatus RowStatus}

expObjectIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "Within an expression, a unique, numeric identification for an
     object.  Prefixed with a dollar sign ('$') this is used to
     reference the object in the corresponding expExpression."
    ::= { expObjectEntry 1 }
        
expObjectIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "Within an expression, a unique, numeric identification for an
     object.  Prefixed with a dollar sign ('$') this is used to
     reference the object in the corresponding expExpression."
    ::= { expObjectEntry 1 }
        

expObjectID OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-create STATUS current DESCRIPTION "The OBJECT IDENTIFIER (OID) of this object. The OID may be fully qualified, meaning it includes a complete instance identifier part (e.g., ifInOctets.1 or sysUpTime.0), or it may not be fully qualified, meaning it may lack all or part of the instance identifier. If the expObjectID is not fully qualified, then expObjectWildcard must be set to true(1). The value of the expression will be multiple values, as if done for a GetNext sweep of the object.

expObjectID对象类型语法对象标识符MAX-ACCESS read create STATUS current DESCRIPTION“此对象的对象标识符(OID)。OID可能是完全限定的,这意味着它包括一个完整的实例标识符部分(例如IFinocts.1或sysUpTime.0),或者它可能不是完全限定的,这意味着它可能缺少全部或部分实例标识符。如果ExpoObjectId不是完全限定的,则ExpoObjectWildcard必须设置为true(1)。表达式的值将是多个值,就像对对象的GetNext扫描一样。

An object here may itself be the result of an expression but recursion is not allowed.

这里的对象本身可能是表达式的结果,但不允许递归。

     NOTE:  The simplest implementations of this MIB may not allow
     wildcards."
    ::= { expObjectEntry 2 }
        
     NOTE:  The simplest implementations of this MIB may not allow
     wildcards."
    ::= { expObjectEntry 2 }
        

expObjectIDWildcard OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "A true value indicates the expObjecID of this row is a wildcard object. False indicates that expObjectID is fully instanced. If all expObjectWildcard values for a given expression are FALSE,

ExpoObjectIldCard对象类型语法TruthValue MAX-ACCESS读取创建状态当前描述“真值表示此行的ExpoObjectId为通配符对象。假表示ExpoObjectId已完全实例化。如果给定表达式的所有ExpoObjectWildcard值均为假,

expExpressionPrefix will reflect a scalar object (i.e. will be 0.0).

expExpressionPrefix将反映标量对象(即将为0.0)。

        NOTE:  The simplest implementations of this MIB may not allow
        wildcards."
    DEFVAL      { false }
    ::= { expObjectEntry 3 }
        
        NOTE:  The simplest implementations of this MIB may not allow
        wildcards."
    DEFVAL      { false }
    ::= { expObjectEntry 3 }
        

expObjectSampleType OBJECT-TYPE SYNTAX INTEGER { absoluteValue(1), deltaValue(2), changedValue(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "The method of sampling the selected variable.

expObjectSampleType对象类型语法整数{absoluteValue(1),deltaValue(2),changedValue(3)}MAX-ACCESS读取创建状态当前描述“对所选变量进行采样的方法。

An 'absoluteValue' is simply the present value of the object.

“绝对价值”只是对象的现值。

A 'deltaValue' is the present value minus the previous value, which was sampled expExpressionDeltaInterval seconds ago. This is intended primarily for use with SNMP counters, which are meaningless as an 'absoluteValue', but may be used with any integer-based value.

“deltaValue”是当前值减去前一个值,前一个值是ExpExpressionDeltaintarval几秒钟前采样的。这主要用于SNMP计数器,作为“绝对值”没有意义,但可以用于任何基于整数的值。

A 'changedValue' is a boolean for whether the present value is different from the previous value. It is applicable to any data type and results in an Unsigned32 with value 1 if the object's value is changed and 0 if not. In all other respects it is as a 'deltaValue' and all statements and operation regarding delta values apply to changed values.

“changedValue”是一个布尔值,用于判断当前值是否与以前的值不同。它适用于任何数据类型,如果对象的值已更改,则会导致值为1的Unsigned32,如果未更改,则会导致值为0的Unsigned32。在所有其他方面,它是一个“deltaValue”,所有关于delta值的语句和操作都适用于更改后的值。

     When an expression contains both delta and absolute values
     the absolute values are obtained at the end of the delta
     period."
    DEFVAL      { absoluteValue }
    ::= { expObjectEntry 4 }
        
     When an expression contains both delta and absolute values
     the absolute values are obtained at the end of the delta
     period."
    DEFVAL      { absoluteValue }
    ::= { expObjectEntry 4 }
        
sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }
        
sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }
        

expObjectDeltaDiscontinuityID OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-create STATUS current DESCRIPTION "The OBJECT IDENTIFIER (OID) of a TimeTicks, TimeStamp, or DateAndTime object that indicates a discontinuity in the value at expObjectID.

expObjectDeltaDiscontinuityID对象类型语法对象标识符MAX-ACCESS read create STATUS current DESCRIPTION“表示expObjectID处的值不连续的TimeTicks、TimeStamp或DateAndTime对象的对象标识符(OID)。

This object is instantiated only if expObjectSampleType is 'deltaValue' or 'changedValue'.

仅当expObjectSampleType为“deltaValue”或“changedValue”时,才会实例化此对象。

The OID may be for a leaf object (e.g. sysUpTime.0) or may be wildcarded to match expObjectID.

OID可以用于叶对象(例如sysUpTime.0),也可以是通配符以匹配expObjectID。

This object supports normal checking for a discontinuity in a counter. Note that if this object does not point to sysUpTime discontinuity checking must still check sysUpTime for an overall discontinuity.

此对象支持对计数器中的不连续性进行常规检查。请注意,如果此对象未指向sysUpTime不连续性检查,则仍必须检查sysUpTime是否存在整体不连续性。

     If the object identified is not accessible no discontinuity
     check will be made."
    DEFVAL      { sysUpTimeInstance }
    ::= { expObjectEntry 5 }
        
     If the object identified is not accessible no discontinuity
     check will be made."
    DEFVAL      { sysUpTimeInstance }
    ::= { expObjectEntry 5 }
        

expObjectDiscontinuityIDWildcard OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "A true value indicates the expObjectDeltaDiscontinuityID of this row is a wildcard object. False indicates that expObjectDeltaDiscontinuityID is fully instanced.

ExpObjectDiscontinuctionIdWildCard对象类型语法TruthValue MAX-ACCESS读取创建状态当前描述“true值表示此行的ExpObjectDeltaDiscontinuId是通配符对象。False表示ExpObjectDeltaDiscontinuId已完全实例化。

This object is instantiated only if expObjectSampleType is 'deltaValue' or 'changedValue'.

仅当expObjectSampleType为“deltaValue”或“changedValue”时,才会实例化此对象。

     NOTE:  The simplest implementations of this MIB may not allow
     wildcards."
    DEFVAL      { false }
     ::= { expObjectEntry 6 }
        
     NOTE:  The simplest implementations of this MIB may not allow
     wildcards."
    DEFVAL      { false }
     ::= { expObjectEntry 6 }
        

expObjectDiscontinuityIDType OBJECT-TYPE SYNTAX INTEGER { timeTicks(1), timeStamp(2), dateAndTime(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "The value 'timeTicks' indicates the expObjectDeltaDiscontinuityID of this row is of syntax TimeTicks. The value 'timeStamp' indicates syntax TimeStamp. The value 'dateAndTime indicates syntax DateAndTime.

expectObjectInjunctionYIDType对象类型语法整数{timeTicks(1),timeStamp(2),dateAndTime(3)}MAX-ACCESS读取创建状态当前描述“值'timeTicks'表示此行的ExpObjectDeltaDiscontinuitId的语法为timeTicks。值“timeStamp”表示语法时间戳。值“dateAndTime”表示语法dateAndTime。

     This object is instantiated only if expObjectSampleType is
     'deltaValue' or 'changedValue'."
    DEFVAL      { timeTicks }
     ::= { expObjectEntry 7 }
        
     This object is instantiated only if expObjectSampleType is
     'deltaValue' or 'changedValue'."
    DEFVAL      { timeTicks }
     ::= { expObjectEntry 7 }
        

expObjectConditional OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-create STATUS current DESCRIPTION "The OBJECT IDENTIFIER (OID) of an object that overrides whether the instance of expObjectID is to be considered usable. If the value of the object at expObjectConditional is 0 or not instantiated, the object at expObjectID is treated as if it is not instantiated. In other words, expObjectConditional is a filter that controls whether or not to use the value at expObjectID.

expObjectConditional OBJECT-TYPE语法对象标识符MAX-ACCESS读取创建状态当前描述“对象标识符(OID)用于覆盖是否认为ExpoObjectId实例可用的对象。如果ExpoObjectConditional处的对象值为0或未实例化,则ExpoObjectId处的对象将被视为未实例化。换句话说,ExpoObjectConditional是控制是否使用ExpoObjectId处的值的筛选器。

The OID may be for a leaf object (e.g. sysObjectID.0) or may be wildcarded to match expObjectID. If expObject is wildcarded and expObjectID in the same row is not, the wild portion of expObjectConditional must match the wildcarding of the rest of the expression. If no object in the expression is wildcarded but expObjectConditional is, use the lexically first instance (if any) of expObjectConditional.

OID可以用于叶对象(例如sysObjectID.0),也可以是通配符以匹配ExpoObjectId。如果ExpoObject为通配符,而同一行中的ExpoObject为非通配符,则ExpoObjectConditional的通配符部分必须与表达式其余部分的通配符匹配。如果表达式中没有对象是通配符,但expObjectConditional是通配符,则使用expObjectConditional的词汇第一个实例(如果有)。

If the value of expObjectConditional is 0.0 operation is as if the value pointed to by expObjectConditional is a non-zero (true) value.

如果ExpoObjectConditional的值为0.0,则操作就像ExpoObjectConditional指向的值是非零(真)值一样。

     Note that expObjectConditional can not trivially use an object
     of syntax TruthValue, since the underlying value is not 0 or 1."
    DEFVAL      { zeroDotZero }
    ::= { expObjectEntry 8 }
        
     Note that expObjectConditional can not trivially use an object
     of syntax TruthValue, since the underlying value is not 0 or 1."
    DEFVAL      { zeroDotZero }
    ::= { expObjectEntry 8 }
        

expObjectConditionalWildcard OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION

expObjectConditionalWildcard对象类型语法TruthValue MAX-ACCESS读取创建状态当前描述

"A true value indicates the expObjectConditional of this row is a wildcard object. False indicates that expObjectConditional is fully instanced.

“true值表示此行的expObjectConditional是通配符对象。False表示expObjectConditional已完全实例化。

     NOTE: The simplest implementations of this MIB may not allow
     wildcards."
    DEFVAL      { false }
     ::= { expObjectEntry 9 }
        
     NOTE: The simplest implementations of this MIB may not allow
     wildcards."
    DEFVAL      { false }
     ::= { expObjectEntry 9 }
        

expObjectEntryStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create

expObjectEntryStatus对象类型语法RowStatus MAX-ACCESS read create

STATUS current DESCRIPTION "The control that allows creation/deletion of entries.

STATUS current DESCRIPTION“允许创建/删除条目的控件。

     Objects in this table may be changed while
     expObjectEntryStatus is in any state."
    ::= { expObjectEntry 10 }
        
     Objects in this table may be changed while
     expObjectEntryStatus is in any state."
    ::= { expObjectEntry 10 }
        

-- -- Expression Value Table --

----表达式值表--

expValueTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ExpValueEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of values from evaluated expressions."
    ::= { expValue 1 }
        
expValueTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ExpValueEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
     "A table of values from evaluated expressions."
    ::= { expValue 1 }
        

expValueEntry OBJECT-TYPE SYNTAX ExpValueEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A single value from an evaluated expression. For a given instance, only one 'Val' object in the conceptual row will be instantiated, that is, the one with the appropriate type for the value. For values that contain no objects of expObjectSampleType 'deltaValue' or 'changedValue', reading a value from the table causes the evaluation of the expression for that value. For those that contain a 'deltaValue' or 'changedValue' the value read is as of the last sampling interval.

expValueEntry对象类型语法expValueEntry MAX-ACCESS不可访问状态当前说明“计算表达式中的单个值。对于给定的实例,概念行中只有一个“Val”对象将被实例化,即具有适当值类型的对象。对于不包含expObjectSampleType为“deltaValue”或“changedValue”的对象的值,从表中读取值会导致对该值的表达式求值。对于包含“deltaValue”或“changedValue”的值,读取的值为上次采样间隔的值。

If in the attempt to evaluate the expression one or more of the necessary objects is not available, the corresponding entry in this table is effectively not instantiated.

如果在尝试计算表达式时,一个或多个必需的对象不可用,则此表中的相应项实际上不会实例化。

To maintain security of MIB information, when creating a new row in this table, the managed system must record the security credentials of the requester. These security credentials are the parameters necessary as inputs to isAccessAllowed from [RFC2571]. When obtaining the objects that make up the expression, the system must (conceptually) use isAccessAllowed to ensure that it does not violate security.

为了维护MIB信息的安全性,在该表中创建新行时,托管系统必须记录请求者的安全凭据。这些安全凭证是作为[RFC2571]允许的ISACCESS输入所必需的参数。获取构成表达式的对象时,系统必须(概念上)使用isAccessAllowed以确保它不会违反安全性。

The evaluation of that expression takes place under the

该表达式的求值在

security credentials of the creator of its expExpressionEntry.

ExpressionEntry创建者的安全凭据。

     To maintain security of MIB information, expression evaluation must
     take place using security credentials for the implied Gets of the
     objects in the expression as inputs (conceptually) to
     isAccessAllowed from the Architecture for Describing SNMP
     Management Frameworks.  These are the security credentials of the
     creator of the corresponding expExpressionEntry."
    INDEX       { expExpressionOwner, expExpressionName,
                  IMPLIED expValueInstance }
    ::= { expValueTable 1 }
        
     To maintain security of MIB information, expression evaluation must
     take place using security credentials for the implied Gets of the
     objects in the expression as inputs (conceptually) to
     isAccessAllowed from the Architecture for Describing SNMP
     Management Frameworks.  These are the security credentials of the
     creator of the corresponding expExpressionEntry."
    INDEX       { expExpressionOwner, expExpressionName,
                  IMPLIED expValueInstance }
    ::= { expValueTable 1 }
        
ExpValueEntry ::= SEQUENCE {
    expValueInstance          OBJECT IDENTIFIER,
    expValueCounter32Val      Counter32,
    expValueUnsigned32Val     Unsigned32,
    expValueTimeTicksVal      TimeTicks,
    expValueInteger32Val      Integer32,
    expValueIpAddressVal      IpAddress,
    expValueOctetStringVal    OCTET STRING,
    expValueOidVal            OBJECT IDENTIFIER,
    expValueCounter64Val      Counter64
}
        
ExpValueEntry ::= SEQUENCE {
    expValueInstance          OBJECT IDENTIFIER,
    expValueCounter32Val      Counter32,
    expValueUnsigned32Val     Unsigned32,
    expValueTimeTicksVal      TimeTicks,
    expValueInteger32Val      Integer32,
    expValueIpAddressVal      IpAddress,
    expValueOctetStringVal    OCTET STRING,
    expValueOidVal            OBJECT IDENTIFIER,
    expValueCounter64Val      Counter64
}
        

expValueInstance OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS not-accessible STATUS current DESCRIPTION "The final instance portion of a value's OID according to the wildcarding in instances of expObjectID for the expression. The prefix of this OID fragment is 0.0, leading to the following behavior.

expValueInstance对象类型语法对象标识符MAX-ACCESS不可访问状态当前描述“根据表达式expObjectID实例中的通配符,值OID的最终实例部分。此OID片段的前缀为0.0,导致以下行为。

If there is no wildcarding, the value is 0.0.0. In other words, there is one value which standing alone would have been a scalar with a 0 at the end of its OID.

如果没有通配符,则该值为0.0.0。换句话说,有一个单独存在的值是一个标量,在其OID的末尾有一个0。

     If there is wildcarding, the value is 0.0 followed by
     a value that the wildcard can take, thus defining one value
     instance for each real, possible value of the wildcard.
     So, for example, if the wildcard worked out to be an ifIndex,
     there is an expValueInstance for each applicable ifIndex."
    ::= { expValueEntry 1 }
        
     If there is wildcarding, the value is 0.0 followed by
     a value that the wildcard can take, thus defining one value
     instance for each real, possible value of the wildcard.
     So, for example, if the wildcard worked out to be an ifIndex,
     there is an expValueInstance for each applicable ifIndex."
    ::= { expValueEntry 1 }
        

expValueCounter32Val OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only

expValueCounter32Val对象类型语法Counter32 MAX-ACCESS只读

    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'counter32'."
    ::= { expValueEntry 2 }
        
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'counter32'."
    ::= { expValueEntry 2 }
        
expValueUnsigned32Val OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'unsigned32'."
    ::= { expValueEntry 3 }
        
expValueUnsigned32Val OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'unsigned32'."
    ::= { expValueEntry 3 }
        
expValueTimeTicksVal OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'timeTicks'."
    ::= { expValueEntry 4 }
        
expValueTimeTicksVal OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'timeTicks'."
    ::= { expValueEntry 4 }
        
expValueInteger32Val OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'integer32'."
    ::= { expValueEntry 5 }
        
expValueInteger32Val OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'integer32'."
    ::= { expValueEntry 5 }
        
expValueIpAddressVal OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'ipAddress'."
    ::= { expValueEntry 6 }
        
expValueIpAddressVal OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'ipAddress'."
    ::= { expValueEntry 6 }
        
expValueOctetStringVal OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..65536))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'octetString'."
    ::= { expValueEntry 7 }
        
expValueOctetStringVal OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..65536))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'octetString'."
    ::= { expValueEntry 7 }
        

expValueOidVal OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-only

expValueOidVal对象类型语法对象标识符MAX-ACCESS只读

    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'objectId'."
    ::= { expValueEntry 8 }
        
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'objectId'."
    ::= { expValueEntry 8 }
        
expValueCounter64Val OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'counter64'."
    ::= { expValueEntry 9 }
        
expValueCounter64Val OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
     "The value when expExpressionValueType is 'counter64'."
    ::= { expValueEntry 9 }
        

-- -- Conformance --

----一致性--

dismanExpressionMIBConformance OBJECT IDENTIFIER ::=
    { dismanExpressionMIB 3 }
dismanExpressionMIBCompliances OBJECT IDENTIFIER ::=
    { dismanExpressionMIBConformance 1 }
dismanExpressionMIBGroups      OBJECT IDENTIFIER ::=
    { dismanExpressionMIBConformance 2 }
        
dismanExpressionMIBConformance OBJECT IDENTIFIER ::=
    { dismanExpressionMIB 3 }
dismanExpressionMIBCompliances OBJECT IDENTIFIER ::=
    { dismanExpressionMIBConformance 1 }
dismanExpressionMIBGroups      OBJECT IDENTIFIER ::=
    { dismanExpressionMIBConformance 2 }
        

-- Compliance

--顺从

dismanExpressionMIBCompliance MODULE-COMPLIANCE
     STATUS current
     DESCRIPTION
          "The compliance statement for entities which implement
          the Expression MIB."
     MODULE    -- this module
          MANDATORY-GROUPS {
               dismanExpressionResourceGroup,
               dismanExpressionDefinitionGroup,
               dismanExpressionValueGroup
          }
        
dismanExpressionMIBCompliance MODULE-COMPLIANCE
     STATUS current
     DESCRIPTION
          "The compliance statement for entities which implement
          the Expression MIB."
     MODULE    -- this module
          MANDATORY-GROUPS {
               dismanExpressionResourceGroup,
               dismanExpressionDefinitionGroup,
               dismanExpressionValueGroup
          }
        

OBJECT expResourceDeltaMinimum SYNTAX Integer32 (-1 | 60..600) DESCRIPTION "Implementation need not allow deltas or it may implement them and restrict them to higher values."

OBJECT expResourceDeltaMinimum语法Integer32(-1 | 60..600)说明“实现不需要允许增量,否则它可能实现它们并将它们限制为更高的值。”

OBJECT expObjectSampleType WRITE-SYNTAX INTEGER { absoluteValue(1) } DESCRIPTION "Implementation may disallow deltas calculation or

OBJECT ExpectSampleType WRITE-SYNTAX整数{absoluteValue(1)}DESCRIPTION“实现可能不允许增量计算或

change detection."

更改检测。”

OBJECT expObjectIDWildcard WRITE-SYNTAX INTEGER { false(2) } DESCRIPTION "Implementation may allow wildcards."

对象ExpObjectIldCard写语法整数{false(2)}说明“实现可能允许通配符。”

OBJECT expObjectDiscontinuityIDWildcard WRITE-SYNTAX INTEGER { false(2) } DESCRIPTION "Implementation need not allow wildcards."

对象ExpectObjectInjunctionYidwildCard写入语法整数{false(2)}说明“实现不需要允许通配符。”

OBJECT expObjectConditionalWildcard WRITE-SYNTAX INTEGER { false(2) } DESCRIPTION "Implementation need not allow deltas wildcards."

OBJECT ExpectConditional通配符写入语法整数{false(2)}说明“实现不需要允许增量通配符。”

     ::= { dismanExpressionMIBCompliances 1 }
        
     ::= { dismanExpressionMIBCompliances 1 }
        

-- Units of Conformance

--一致性单位

dismanExpressionResourceGroup OBJECT-GROUP
     OBJECTS {
          expResourceDeltaMinimum,
          expResourceDeltaWildcardInstanceMaximum,
          expResourceDeltaWildcardInstances,
          expResourceDeltaWildcardInstancesHigh,
          expResourceDeltaWildcardInstanceResourceLacks
     }
     STATUS current
     DESCRIPTION
          "Expression definition resource management."
     ::= { dismanExpressionMIBGroups 1 }
        
dismanExpressionResourceGroup OBJECT-GROUP
     OBJECTS {
          expResourceDeltaMinimum,
          expResourceDeltaWildcardInstanceMaximum,
          expResourceDeltaWildcardInstances,
          expResourceDeltaWildcardInstancesHigh,
          expResourceDeltaWildcardInstanceResourceLacks
     }
     STATUS current
     DESCRIPTION
          "Expression definition resource management."
     ::= { dismanExpressionMIBGroups 1 }
        

dismanExpressionDefinitionGroup OBJECT-GROUP OBJECTS { expExpression, expExpressionValueType, expExpressionComment, expExpressionDeltaInterval, expExpressionPrefix, expExpressionErrors, expExpressionEntryStatus,

DemanExpressionDefinitionGroup对象组对象{Expression,ExpressionValueType,ExpressionComment,ExpExpressionDeltaInerval,ExpressionPrefix,ExpressionErrors,ExpressionEntryStatus,

expErrorTime, expErrorIndex, expErrorCode, expErrorInstance,

专家时间,专家索引,专家代码,专家实例,

          expObjectID,
          expObjectIDWildcard,
          expObjectSampleType,
          expObjectDeltaDiscontinuityID,
          expObjectDiscontinuityIDWildcard,
          expObjectDiscontinuityIDType,
          expObjectConditional,
          expObjectConditionalWildcard,
          expObjectEntryStatus
     }
     STATUS current
     DESCRIPTION
          "Expression definition."
     ::= { dismanExpressionMIBGroups 2 }
        
          expObjectID,
          expObjectIDWildcard,
          expObjectSampleType,
          expObjectDeltaDiscontinuityID,
          expObjectDiscontinuityIDWildcard,
          expObjectDiscontinuityIDType,
          expObjectConditional,
          expObjectConditionalWildcard,
          expObjectEntryStatus
     }
     STATUS current
     DESCRIPTION
          "Expression definition."
     ::= { dismanExpressionMIBGroups 2 }
        
dismanExpressionValueGroup OBJECT-GROUP
     OBJECTS {
          expValueCounter32Val,
          expValueUnsigned32Val,
          expValueTimeTicksVal,
          expValueInteger32Val,
          expValueIpAddressVal,
          expValueOctetStringVal,
          expValueOidVal,
          expValueCounter64Val
     }
     STATUS current
     DESCRIPTION
          "Expression value."
     ::= { dismanExpressionMIBGroups 3 }
        
dismanExpressionValueGroup OBJECT-GROUP
     OBJECTS {
          expValueCounter32Val,
          expValueUnsigned32Val,
          expValueTimeTicksVal,
          expValueInteger32Val,
          expValueIpAddressVal,
          expValueOctetStringVal,
          expValueOidVal,
          expValueCounter64Val
     }
     STATUS current
     DESCRIPTION
          "Expression value."
     ::= { dismanExpressionMIBGroups 3 }
        

END

终止

4. Intellectual Property
4. 知识产权

The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards- related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何努力来确定任何此类权利。有关IETF在标准跟踪和标准相关文件中权利的程序信息,请参见BCP-11。可从IETF秘书处获得可供发布的权利声明副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果。

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涉及实施本标准所需技术的专有权利。请将信息发送给IETF执行董事。

5. Acknowledgements
5. 致谢

This MIB contains considerable contributions from the Distributed Management Design Team (Andy Bierman, Maria Greene, Bob Stewart, and Steve Waldbusser), and colleagues at Cisco who did the first implementation.

此MIB包含分布式管理设计团队(Andy Bierman、Maria Greene、Bob Stewart和Steve Waldbusser)以及Cisco的同事(他们完成了第一个实现)的大量贡献。

6. References
6. 工具书类

[RFC2571] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture Describing SNMP Management Frameworks", RFC 2571, April 1999.

[RFC2571]Harrington,D.,Presohn,R.和B.Wijnen,“描述SNMP管理框架的体系结构”,RFC 2571,1999年4月。

[RFC1155] Rose, M. and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", STD 16, RFC 1155, May 1990.

[RFC1155]Rose,M.和K.McCloghrie,“基于TCP/IP的互联网管理信息的结构和识别”,STD 16,RFC 1155,1990年5月。

[RFC1212] Rose, M. and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991.

[RFC1212]Rose,M.和K.McCloghrie,“简明MIB定义”,STD 16,RFC 1212,1991年3月。

[RFC1215] Rose, M., "A Convention for Defining Traps for use with the SNMP", RFC 1215, March 1991.

[RFC1215]Rose,M.,“定义用于SNMP的陷阱的约定”,RFC1215,1991年3月。

[RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

[RFC2578]McCloghrie,K.,Perkins,D.,Schoenwaeld,J.,Case,J.,Rose,M.和S.Waldbusser,“管理信息的结构版本2(SMIv2)”,STD 58,RFC 2578,1999年4月。

[RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.

[RFC2579]McCloghrie,K.,Perkins,D.,Schoenwaeld,J.,Case,J.,Rose,M.和S.Waldbusser,“SMIv2的文本约定”,STD 58,RFC 2579,1999年4月。

[RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.

[RFC2580]McCloghrie,K.,Perkins,D.,Schoenwaeld,J.,Case,J.,Rose,M.和S.Waldbusser,“SMIv2的一致性声明”,STD 58,RFC 25801999年4月。

[RFC1157] Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, May 1990.

[RFC1157]Case,J.,Fedor,M.,Schoffstall,M.和J.Davin,“简单网络管理协议”,STD 15,RFC 1157,1990年5月。

[RFC1901] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996.

[RFC1901]Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“基于社区的SNMPv2简介”,RFC 19011996年1月。

[RFC1906] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996.

[RFC1906]Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“简单网络管理协议(SNMPv2)版本2的传输映射”,RFC 1906,1996年1月。

[RFC2572] Case, J., Harrington D., Presuhn R. and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)", RFC 2572, April 1999.

[RFC2572]Case,J.,Harrington D.,Presohn R.和B.Wijnen,“简单网络管理协议(SNMP)的消息处理和调度”,RFC 2572,1999年4月。

[RFC2574] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2574, April 1999.

[RFC2574]Blumenthal,U.和B.Wijnen,“简单网络管理协议(SNMPv3)第3版基于用户的安全模型(USM)”,RFC 2574,1999年4月。

[RFC1905] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996.

[RFC1905]Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“简单网络管理协议(SNMPv2)版本2的协议操作”,RFC 1905,1996年1月。

[RFC2573] Levi, D., Meyer, P. and B. Stewart, "SNMPv3 Applications", RFC 2573, April 1999.

[RFC2573]Levi,D.,Meyer,P.和B.Stewart,“SNMPv3应用”,RFC 2573,1999年4月。

[RFC2575] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", RFC 2575, April 1999.

[RFC2575]Wijnen,B.,Presohn,R.和K.McCloghrie,“用于简单网络管理协议(SNMP)的基于视图的访问控制模型(VACM)”,RFC 2575,1999年4月。

[RFC2570] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction to Version 3 of the Internet-standard Network Management Framework", RFC 2570, April 1999.

[RFC2570]Case,J.,Mundy,R.,Partain,D.和B.Stewart,“互联网标准网络管理框架第3版简介”,RFC 25701999年4月。

[RFC1903] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Coexistence between Version 1 and version 2 of the Internet-standard Network Management Framework", RFC 1903, January 1996.

[RFC1903]Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“互联网标准网络管理框架第1版和第2版之间的共存”,RFC 1903,1996年1月。

[RFC2981] Stewart, B., "Event MIB", RFC 2981, October 2000.

[RFC2981]Stewart,B.,“事件MIB”,RFC 29812000年10月。

[PracPersp] Leinwand, A. and K. Fang, "Network Management: A Practical Perspective", Addison-Wesley Publishing Company, Inc., 1993.

[PracPersp]Leinwand,A.和K.Fang,“网络管理:实践视角”,Addison-Wesley出版社,1993年。

7. Security Considerations
7. 安全考虑

Expression MIB security involves two perspectives: protection of expressions from tampering or unauthorized use of resources, and protection of the objects used to calculate the expressions.

Expression MIB安全性涉及两个方面:保护表达式免受篡改或未经授权使用资源,以及保护用于计算表达式的对象。

Security of expression definitions and results depends on the expression owner (expExpressionOwner). With view-based access control [RFC2575] a network manager can control who has what level of access to what expressions.

表达式定义和结果的安全性取决于表达式所有者(expExpressionOwner)。通过基于视图的访问控制[RFC2575],网络管理器可以控制谁拥有对表达式的访问级别。

Access control for the objects within the expression depends on the security credentials of the expression creator. These are the security credentials used to get the objects necessary to evaluate the expression. They are the security credentials that were used to set the expExpressionRowStatus object for that expression to 'active', as recorded by the managed system.

表达式中对象的访问控制取决于表达式创建者的安全凭据。这些是用于获取计算表达式所需的对象的安全凭据。它们是用于将该表达式的ExpExpExpressionRowStatus对象设置为“活动”的安全凭据,由托管系统记录。

This means that the results of an expression could potentially be made available to someone who does not have access to the raw data that went into them. This could be either legitimate or a security violation, depending on the specific situation and security policy.

这意味着表达式的结果可能会提供给无法访问进入表达式的原始数据的人。这可能是合法的,也可能是违反安全的,具体取决于具体情况和安全政策。

To facilitate the provisioning of access control by a security administrator for this MIB itself using the View-Based Access Control Model (VACM) defined in RFC 2575 [RFC2575] for tables in which multiple users may need to independently create or modify entries, the initial index is used as an "owner index". Such an initial index has a syntax of SnmpAdminString, and can thus be trivially mapped to a securityName or groupName as defined in VACM, in accordance with a security policy.

为了方便安全管理员使用RFC 2575[RFC2575]中定义的基于视图的访问控制模型(VACM)为该MIB本身提供访问控制,对于多个用户可能需要独立创建或修改条目的表,初始索引用作“所有者索引”。这样的初始索引具有snmpadmin语法,因此可以根据安全策略简单地映射到VACM中定义的securityName或groupName。

All entries in related tables belonging to a particular user will have the same value for this initial index. For a given user's entries in a particular table, the object identifiers for the information in these entries will have the same subidentifiers (except for the "column" subidentifier) up to the end of the encoded owner index. To configure VACM to permit access to this portion of the table, one would create vacmViewTreeFamilyTable entries with the value of vacmViewTreeFamilySubtree including the owner index portion, and vacmViewTreeFamilyMask "wildcarding" the column subidentifier. More elaborate configurations are possible.

相关表中属于特定用户的所有条目对此初始索引具有相同的值。对于特定表中的给定用户项,这些项中信息的对象标识符在编码的所有者索引结束之前将具有相同的子标识符(除了“列”子标识符)。要将VACM配置为允许访问表的这一部分,可以创建vacmViewTreeFamilyTable条目,其值为vacmViewTreeFamilySubtree,包括所有者索引部分,以及VACMVIEWTREEFAMILYMAK“通配符”列子标识符。更复杂的配置是可能的。

8. Author's Address
8. 作者地址

Bob Stewart Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 U.S.A.

Bob Stewart Cisco Systems,Inc.美国加利福尼亚州圣何塞西塔斯曼大道170号,邮编95134-1706。

9. Editor's Address
9. 编辑地址

Ramanathan Kavasseri Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 U.S.A.

美国加利福尼亚州圣何塞西塔斯曼大道170号拉马纳森·卡瓦塞里思科系统公司,邮编95134-1706。

   Phone: +1 408 527 2446
   EMail: ramk@cisco.com
        
   Phone: +1 408 527 2446
   EMail: ramk@cisco.com
        
10. Full Copyright Statement
10. 完整版权声明

Copyright (C) The Internet Society (2000). All Rights Reserved.

版权所有(C)互联网协会(2000年)。版权所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。