как сгенерировать код для таблицы MIB

У меня есть KAVITA-MIB:

KAVITA-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE,MODULE-IDENTITY     FROM SNMPv2-SMI
    TEXTUAL-CONVENTION              FROM SNMPv2-TC;

kavita MODULE-IDENTITY
     LAST-UPDATED "200205290000Z"            -- 29 May 2002, midnight
     ORGANIZATION "net-snmp"
     CONTACT-INFO "postal:   Wes Hardaker
                             P.O. Box 382
                             Davis CA  95617

                   email:    [email protected]"
     DESCRIPTION  "A simple mib for demonstration purposes."

::={enterprises 1100}

RowStatus ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
        "The RowStatus textual convention is used to manage the
        creation and deletion of conceptual rows, and is used as the
        value of the SYNTAX clause for the status column of a
        conceptual row."
    SYNTAX   INTEGER {
         -- the following two values are states:
         -- these values may be read or written
         active(1),          -- state:  read/write
         notInService(2),    -- state:  read/write
         notReady(3),        -- state:  read only
         createAndGo(4),     -- action: write only
         createAndWait(5),   -- action: write only
         destroy(6)      -- action: write only
    }


    kavitaScalar OBJECT IDENTIFIER ::= {kavita 1}
    kavitaTable OBJECT IDENTIFIER ::= {kavita 2}

    scalar1 OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "scalar1"
    DEFVAL { 2 }
    ::= { kavitaScalar 1 }

    scalar2 OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "scalar2"
        DEFVAL { 4 }
    ::= { kavitaScalar 2 }

    kavitaTableOne OBJECT-TYPE
        SYNTAX      SEQUENCE OF kavitaTable1Entry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table 1"
    ::= { kavitaTable 1 }

    kavitaTable1Entry OBJECT-TYPE
        SYNTAX      kavitaTable1Entry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry"
        INDEX { tIndex }
    ::= { kavitaTableOne 1 }

    kavitaTable1Entry ::= SEQUENCE {
        tIndex      Integer32,
        tName       DisplayString,
        tMarks      Integer32,
        tRowStatus  INTEGER
    }

    tIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..100)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Index for Table 1"
    ::= { kavitaTable1Entry 1 }

    tName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Name for Table 1"
    ::= { kavitaTable1Entry 2 }

    tMarks OBJECT-TYPE
        SYNTAX      Integer32(1..100)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Marks for Table 1"
    ::= { kavitaTable1Entry 3 } 


    tRowStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION "The status"
    ::= { kavitaTable1Entry 4 }      

END

Как мне сгенерировать код mib2c для «kavitaTableOne».

Я пробовал использовать env MIBS="+KAVITA-MIB" MIBDIRS="/usr/share/snmp/mibs" mib2c -c mib2c.mfd.conf kavitaTableOne

но он говорит Несвязанный OID в KAVITA-MIB: kavita ::= { enterprise 1100 } Неопределенный идентификатор: enterprise возле строки 7 файла /usr/share/snmp/mibs/KAVITA-MIB.txt Этот модуль можно использовать только с таблицами, а не филиалы или целые MIB. Пожалуйста, укажите и OID, который является таблицей. (Идентификатор объекта: kavitaTableOne)

Пожалуйста помогите..


person Kavita Garg    schedule 10.06.2011    source источник


Ответы (2)


В верхней части MIB вы можете сначала повторить:

kavita        OBJECT IDENTIFIER ::= { enterprises 1100 }

после этого попробуйте скомпилировать с помощью:

env MIBS="+KAVITA-MIB" mib2c kavitaTable
person JPBlanc    schedule 10.06.2011
comment
KAVITA-MIB содержит stmt kavita OBJECT IDENTIFIER ::= { enterprise 1100 } Я пробовал использовать env MIBS=+KAVITA-MIB mib2c kavitaTable. Это работает, но сгенерировал файл kavitaTable_oids.h, содержащий /* определения номеров столбцов для таблицы kavitaTable */ #define COLUMN_KAVITATABLE1ENTRY 1 Но я предположил, что у меня есть что-то вроде OID отдельных записей в таблицах, таких как #define COLUMN_tIndex 1 #define COLUMN_tName 2 #define COLUMN_tMarks 3 #define COLUMN_tRowStatus 4 - person Kavita Garg; 13.06.2011
comment
Я также добавил весь MIB, отредактировав содержание вопроса. - person Kavita Garg; 13.06.2011

Вам не хватает для импорта enterprises:

IMPORTS
    OBJECT-TYPE,MODULE-IDENTITY,enterprises     FROM SNMPv2-SMI
person Carlos Campderrós    schedule 24.05.2013