首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用RowStatus?

如何使用RowStatus?
EN

Stack Overflow用户
提问于 2011-02-04 05:33:33
回答 1查看 13.3K关注 0票数 6

我正在编写一个SNMP管理器和一个来自MIB的模拟SNMP代理(用来测试管理器)。我有一个类似于下面的表格,经理应该能够添加/删除行。使用RowStatus做这件事的习惯方法是什么?是否先设置RowStatus?PDU中是否可以包含其他OID?

我最初的用例是启动时表是空的。因此,如果我像这样发送一个设置的PDU:

代码语言:javascript
复制
createStuffEntry.1.1.1 = 1
createStuffEntry.2.1.1 = 1
createStuffEntry.3.1.1 = 99
createStuffEntry.4.1.1 = "Dustbunnies"
createStuffEntry.5.1.1 = 5

这是否适用于下面的定义?如果省略了cRowStatus,会发生什么?

代码语言:javascript
复制
createStuffTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF CreateStuffEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A table for creating stuff."
    ::= { parentGroup 1 }

createStuffEntry OBJECT-TYPE
    SYNTAX  CreateStuffEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "An entry for building a stuff to create."
    INDEX   { cPlanID,  cID }
    ::= { createStuffTable 1 }

CreateStuffEntry ::=
    SEQUENCE {
        cPlanID
            INTEGER,
        cID
            INTEGER,
        cTemplateID
            INTEGER,
        cStuffName
            DisplayString,
        cRowStatus
            RowStatus
    }

cPlanID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The plan ID (cpPlanID)"
    ::= { createStuffEntry 1 }

cID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The table entry index."
    ::= { createStuffEntry 2 }
    
cTemplateID OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The ID of the stuff template to create this stuff from."
    ::= { createStuffEntry 3 }

cStuffName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The stuff name."
    ::= { createStuffEntry 4 }
    
    
 cRowStatus OBJECT-TYPE
    SYNTAX  RowStatus
    ACCESS  read-write
    STATUS  current
    DESCRIPTION
       "This OID uses six main statuses:
        active(1)         is in use and available in stuffTable
        notinService(2)   it is present but not yet created
        notReady(3)       it is present but missing info
        createAndGo(4)    create stuff in stuffTable.  Row will be
                          added to this table if necessary.
        createAndWait(5)  add stuff row to this table
        destroy(6)        will remove the stuff row
    
        This OID is used to add/remove rows for stuff creation.  
        It can also be used to determine if a stuff has been 
        created successfully."
    ::= { createStuffEntry 5 }

注意:这是一个使用RowStatus作为定义类型的SMI v1 MIB,类似于所述的here。因此,read-create是隐含的,而不是这里声明的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-04 06:27:17

RowStatus文本约定实际上为代理如何实现它提供了相当大的回旋余地。因此,管理器必须支持这两种方式,而代理只能支持其中一种方式(但可以支持两种方式):

将row状态变量设置为"createAndWait"

  • Set要设置的所有列(在一个或多个PDU中)
  1. 将row状态变量设置为“createAndWait”
  2. Set将row状态变量设置为"createAndGo“,并将需要设置到单个PDU

中的变量包括****

不幸的是,管理者需要聪明,并知道如何与支持其中之一的代理交谈。人们普遍认为,与微不足道的代理相比,管理者更强大,有更多的空间来处理问题。然而,许多小型设备只支持上面的#2。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4891988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档