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")