SYNTAX-Klausel

Das OBJECT-TYPE-Makro enthält eine SYNTAX-Klausel, die die Daten und den Typ für das MIB-Objekt definiert. Während der SNMP-Anbieter allgemeine Regeln für die Zuordnung von SYNTAX-Klauseln beachtet, befolgt der Anbieter auch spezifische Regeln für verschiedene Datentypen.

Hinweis

Weitere Informationen zum Installieren des Anbieters finden Sie unter Einrichten der WMI-SNMP-Umgebung.

Die folgenden Zuordnungsregeln gelten für alle Datentypen, die in der folgenden Tabelle beschrieben sind:

  • Die Textdarstellung der SYNTAX-Klausel wird der _ Textkonvention des CIM-Eigenschaftsqualifizierers zugeordnet.
  • Die Definition des benannten Typs in der SYNTAX-Klausel wird der CIM-Eigenschaftenqualifiziererobjektsyntax _ zugeordnet. Diese Zuordnung unterscheidet sich je nach Datentyp. Weitere Informationen finden Sie in den Zuordnungsbeschreibungen.
  • Der SNMP-Typ, der beim Codieren von SNMPv1- und SNMPv2C-Protokollframes verwendet wird, wird der CIM-Eigenschaftenqualifizierercodierung zugeordnet.
  • Der CIM-Eigenschaftenqualifizierer cimtype enthält die Textdarstellung, die den zugrunde liegenden CIM-Protokollwert formatiert.

In der folgenden Tabelle sind Datentypen aufgeführt, die über bestimmte Regeln verfügen, die das Anbieterzuordnungsverhalten steuern.

SNMP-Datentyp Beschreibung
Primitiver Typ Einer der grundlegenden Datentypen, die in SMI (Structure of Management Information) definiert sind, dokumentiert RFC 1213 und RFC 1903.
Textkonvention Typdefinition, die durch die explizite Verwendung des SNMPv2C TEXTUAL-CONVENTION-Makros oder durch die Verwendung eines benannten Typs generiert wird. Eine Textkonvention weist einem vorhandenen Datentyp einen Namen und in einigen Fällen einen Wertebereich zu.
Benannter Typ Benannter Verweis auf einen primitiven Typ, eine Textkonvention oder einen eingeschränkten Typ.
Eingeschränkter Typ Primitiver Typ, benannter Typ oder Textkonvention, der durch einen in den SMI-Dokumenten RFC 1213 und RFC 1903 definierten Untertypmechanismus eingeschränkt wurde.

Primitiver Typ

Der primitive Typ ist einer der grundlegenden Datentypen, die in den SMI-Dokumenten (Structure of Management Information) RFC 1213 und RFC 1903 definiert sind. Primitive SNMP-Typen werden CIM-definierten Typen zugeordnet. In der folgenden Tabelle ist die Zuordnung aufgeführt, die auftritt, wenn die SYNTAX-Klausel explizit auf einen primitiven Typ für SNMPv1 verweist. Die Syntaxqualifizierer für _ Textkonvention, Codierung und _ Objektsyntax sind immer identisch mit dem MIB-Typ, und der Standardwert ist immer NULL.

MIB-Typ CIM-Variantentyp cimtype-Wert
INTEGER VT _ I4 sint32
OCTETSTRING VT _ BSTR string
OBJECTIDENTIFIER VT _ BSTR string
NULL VT _ NULL Nicht unterstützt
IpAddress VT _ BSTR string
Leistungsindikator VT _ I4 uint32
Maßstab VT _ I4 uint32
TimeTicks VT _ I4 uint32
Nicht transparent VT _ BSTR string
Networkaddress VT _ BSTR string

Der Anbieter ignoriert das OBJECT-TYPE-Makro, wenn die SYNTAX-Klausel auf NULL verweist, entweder explizit oder über eine benannte Typzuweisung. In der folgenden Tabelle ist die Zuordnung aufgeführt, die auftritt, wenn die SYNTAX-Klausel explizit auf einen primitiven Typ für SNMPv2 verweist. Die Syntaxqualifizierer für _ Textkonvention, Codierung und _ Objektsyntax sind immer identisch mit dem MIB-Typ, und der Standardwert ist immer NULL.

MIB-Typ CIM-Variantentyp cimtype-Wert
INTEGER VT _ I4 sint32
OKTETTZEICHENFOLGE VT _ BSTR string
OBJEKTBEZEICHNER VT _ BSTR string
IpAddress VT _ BSTR string
Counter32 VT _ I4 uint32
Gauge32 VT _ I4 uint32
Unsigned32 VT _ I4 uint32
Ganze Zahl32 VT _ I4 sint32
Counter64 VT _ BSTR uint64
TimeTicks VT _ I4 uint32
Nicht transparent VT _ BSTR string

Benannter Typ

Benannte SNMP-Typen werden CIM-definierten Typen zuordnen. Wenn die SYNTAX-Klausel über eine Typzuweisungsableitung auf einen primitiven Typ,eine Textkonvention oder einen eingeschränkten Typ verweist, verwenden Sie diese Typen, um zu bestimmen, welche Zuordnungsvorgänge angewendet werden.

  • Wenn sie durch Ableitung der Typzuweisungsregeln auf eine eingeschränkte Typdefinition stoßen:

    • Und wenn Sie durch weitere Ableitung auf eine der textuellen Konventionen stoßen, die unter TEXTUAL-CONVENTION-Makroaufgeführt sind, wenden Sie die Zuordnungsregeln für eingeschränkte Typen und Textkonventionen an.
    • Andernfalls wenden Sie die Zuordnungsregeln für primitive Typen und eingeschränkte Typen an, wenn einer der primitiven Typen in einer der beiden Primitiventyptabellen aufgeführt ist.
  • Wenden Sie die Zuordnungsregeln für Textkonventionen an, wenn eine der Textkonventionen im TEXTUAL _ CONVENTION-Makroaufgeführt ist.

  • Wenn sie auf einen der primitiven Typen stoßen, die in einer der beiden Primitiven-Typtabellen aufgeführt sind, wenden Sie die Zuordnungsregeln für primitive Typen an.

Hinweis

Klassen, die Eigenschaftentypen enthalten, die nicht der oben beschriebenen Zuordnung entsprechen, sind ungültig. In diesem Fall gibt der Anbieter einen Fehler zurück, wenn der Anbieter beim Ausführen einer Instanzabruffunktion den Abruf einer Klassendefinition angibt.

Eingeschränkter Typ

Ein eingeschränkter Typ ist ein primitiver Typ, ein benannter Typ oder eine Textkonvention, die durch einen Untertypisierungsmechanismus eingeschränkt wurde, der in den SMI-Dokumenten RFC 1213 und RFC 1903 definiert ist. Wenn eine Untertypisierung auftritt, sind zusätzliche CIM-Qualifizierer erforderlich, um die Untertypwerte anzugeben. Die Definition des benannten Typs in der SYNTAX-Klausel ordnet _ der Objektsyntax des CIM-Eigenschaftenqualifizierers ausführlich zu, jedoch ohne die Einschränkungen des Untertyps.

Untertypen können einem der folgenden Formate folgen:

  • Ganze Zahl aufzählt

    Die CIM-Eigenschaftenqualifiziererenumeration gibt die aufgelisteten Werte an. Dieser Qualifizierer wird als Zeichenfolge dargestellt, die eine durch Komma getrennte Liste von 32-Bit-Ganzzahlwerten mit Vorzeichen enthält. In der folgenden Tabelle sind die Zuordnungstypen aufgeführt. Der Standardwert ist immer NULL.

Eingeschränkter MIB-Typ CIM-Variantentyp CIM-Qualifizierer
Ganze Zahl aufzählt VT _ BSTR Textkonvention: _ enumeratedinteger
encoding: INTEGER
cimtype: string
  • BITS

    Die CIM-Eigenschaftsqualifiziererbits geben die aufzählten Werte an. Dieser Qualifizierer wird als Zeichenfolge dargestellt, die eine durch Komma getrennte Liste von 32-Bit-Ganzzahlwerten mit Vorzeichen enthält. In der folgenden Tabelle sind die Zuordnungstypen aufgeführt. Der Standardwert ist immer NULL.

Eingeschränkter MIB-Typ CIM-Variantentyp CIM-Qualifizierer
BITS VT _ ARRAY | VT _ BSTR _ Textkonvention: Bits
encoding: OCTETSTRING
cimtype: string
  • Variable Länge

    Wenn sich die SYNTAX-Klausel auf einen primitiven Typ, einen benannten Typ oder eine Textkonvention bezieht, die als OCTET STRING variabler Länge oder Opaque subtypisiert ist, gibt der CIM-Eigenschaftsqualifizierer variable _ length die minimalen, maximalen und werte mit fester Länge an, die der Typdefinition zugeordnet sind. Dieser Qualifizierer wird als Zeichenfolge im folgenden Format implementiert, wobei die Werte variabler Länge als 32-Bit-Ganzzahlen ohne Vorzeichen dargestellt werden.

    (((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
    
  • Feste Länge

    Wenn die SYNTAX-Klausel auf einen primitiven Typ, einen benannten Typ oder eine Textkonvention verweist, die als OCTET _ STRING oder Opaque mit fester Länge subtypisiert ist, gibt der CIM-Eigenschaftsqualifizierer feste Länge den Wert fester Länge an. Dieser Qualifizierer wird als 32-Bit-Ganzzahlwert ohne Vorzeichen dargestellt.

  • Bereich

    Wenn sich die SYNTAX-Klausel auf einen primitiven Typ, einen benannten Typ oder eine Textkonvention bezieht, die als _ INTEGER- oder Messgerätwert mit bereichs- oder festem Wert subtypisiert ist, gibt der Wert der CIM-Eigenschaftsqualifizierervariablen die bereichsbasierten und festen Werte an, die der Typdefinition zugeordnet sind. Dieser Qualifizierer wird als Zeichenfolge im folgenden Format implementiert, wobei der Bereich und Werte fester Länge als 32-Bit-Ganzzahlen ohne Vorzeichen dargestellt werden.

    (((0.9)..(0.9))|(0.9))(,(((0.9)..(0.9))|(0.9)))*
    

Beispielcode

Im folgenden Beispiel wird ein enumerationierter INTEGER-Untertyp beschrieben.

Status := INTEGER {
up(1),
down(2),
testing(3)
}

In diesem Beispiel wird Folgendes dargestellt:

enumeration("up(1),down(2),testing(3)")

Im folgenden Codebeispiel wird ein BITS-Untertyp beschrieben.

Status := BITS {
up(1),
down(2), 
testing(3)
}

Das folgende Codebeispiel ist wie folgt dargestellt:

bits("up(1),down(2),testing(3)")

Im folgenden Codebeispiel wird ein Untertyp variabler Länge beschrieben.

MySnmpOSIAddress ::=  TEXTUAL-CONVENTION

    DISPLAY-HINT    "*1x:/1x:"
    STATUS        current
    DESCRIPTION
            "Represents an OSI transport-address:

            octets    contents         encoding
              1        length of NSAP   'n' as an unsigned-integer
                                        (either 0 or from 3 to 20)
              2..(n+1)  NSAP          concrete binary representation
              (n+2)..m  TSEL             string of (up to 64) octets
            "
    SYNTAX         OCTET STRING (SIZE (1|4..85))

In diesem Beispiel wird Folgendes dargestellt:

display_hint("*1x:/1x:"),
encoding("OCTETSTRING"),
textual_convention("OCTETSTRING"),
variable_length ("1,4..85")

Im folgenden Beispiel wird ein Untertyp mit fester Länge beschrieben.

IPXADDRESS := OCTET STRING (SIZE (6))

In diesem Beispiel wird Folgendes dargestellt:

fixed_length(6)

Im folgenden Beispiel wird ein Bereichsuntertyp beschrieben.

Status := INTEGER (10..20|8)

In diesem Beispiel wird Folgendes dargestellt:

variable_value("10..20,8")