Syntaxe – klauzule
Makro OBJECT-TYPE obsahuje klauzuli SYNTAXe, která definuje data a typ objektu MIB. Zatímco zprostředkovatel SNMP dodržuje obecná pravidla pro mapování klauzulí SYNTAXe, zprostředkovatel také dodržuje pravidla specifická pro několik datových typů.
Poznámka
Další informace o instalaci zprostředkovatele naleznete v tématu Nastavení prostředí WMI SNMP.
Následující pravidla mapování platí pro všechny datové typy popsané v následující tabulce:
- Textová reprezentace klauzule SYNTAX se mapuje na kvalifikátor vlastnosti CIM textual_convention.
- Definice pojmenovaného typu v klauzuli SYNTAX se mapuje na kvalifikátor vlastnosti CIM object_syntax. Toto mapování se liší v závislosti na datovém typu. Další informace najdete v popisech mapování.
- Typ SNMP použitý při kódování rámců protokolu SNMPv1 a SNMPv2C se mapuje na kvalifikátor cim vlastnost kódování.
- Kvalifikátor vlastnosti CIM cimtype obsahuje textovou reprezentaci, která formátuje podkladovou hodnotu protokolu CIM.
Následující tabulka uvádí datové typy, které mají specifická pravidla, která řídí chování mapování zprostředkovatele.
Datový typ SNMP | Popis |
---|---|
primitivní typ | Jeden ze základních datových typů definovaných v dokumentech RFC 1213 a RFC 1903 (Struktura informací o správě). |
textové konvence | Definice typu vygenerovaná explicitním použitím SNMPv2C TEXTAL-CONVENTION makrem nebo vygenerovaným použitím pojmenovaného typu. Textová konvence přiřadí název a v některých případech rozsah hodnot existujícímu datovému typu. |
pojmenovaného typu | Pojmenovaný odkaz na primitivní typ, textovou konvenci nebo omezený typ |
omezeného typu | Primitivní typ, pojmenovaný typ nebo textová konvence, která byla omezena určitým mechanismem podtypů definovaným v dokumentech SMI RFC 1213 a RFC 1903. |
Primitivní typ
Primitivní typ je jedním ze základních datových typů definovaných v dokumentech RFC 1213 a RFC 1903 . Primitivní typy SNMP se mapuje na typy definované modelem CIM. Následující tabulka uvádí mapování, které nastane, když klauzule SYNTAX explicitně odkazuje na primitivní typ pro SNMPv1. textual_convention, kódovánía kvalifikátory object_syntax jsou vždy stejné jako typ MIB a výchozí hodnota je vždy NULL.
Typ MIB | Typ varianty CIM | hodnota cimtype |
---|---|---|
CELÉ ČÍSLO | VT_I4 | sint32 |
OCTETSTRING | VT_BSTR | řetězce |
OBJECTIDENTIFIER | VT_BSTR | řetězce |
NULA | VT_NULL | Nepodporováno |
IpAddress | VT_BSTR | řetězce |
Počitadlo | VT_I4 | uint32 |
Měřidlo | VT_I4 | uint32 |
Časové časového limitu | VT_I4 | uint32 |
Neprůhledný | VT_BSTR | řetězce |
NetworkAddress | VT_BSTR | řetězce |
Zprostředkovatel ignoruje OBJECT-TYPE makro, pokud klauzule SYNTAX odkazuje na NULL, buď explicitně, nebo prostřednictvím přiřazení pojmenovaného typu. Následující tabulka uvádí mapování, které nastane, když klauzule SYNTAX explicitně odkazuje na primitivní typ pro SNMPv2. textual_convention, kódovánía kvalifikátory object_syntax jsou vždy stejné jako typ MIB a výchozí hodnota je vždy NULL.
Typ MIB | Typ varianty CIM | hodnota cimtype |
---|---|---|
CELÉ ČÍSLO | VT_I4 | sint32 |
ŘETĚZEC OCTET | VT_BSTR | řetězce |
IDENTIFIKÁTOR OBJEKTU | VT_BSTR | řetězce |
IpAddress | VT_BSTR | řetězce |
Čítač 32 | VT_I4 | uint32 |
Měřidlo32 | VT_I4 | uint32 |
Bez znaménka32 | VT_I4 | uint32 |
Celé číslo 32 | VT_I4 | sint32 |
Čítač 64 | VT_BSTR | uint64 |
Časové časového limitu | VT_I4 | uint32 |
Neprůhledný | VT_BSTR | řetězce |
Pojmenovaný typ
Pojmenované typy SNMP se mapuje na typy definované cim. Pokud klauzule SYNTAX odkazuje na primitivní typ, textové konvencenebo omezeného typu prostřednictvím odvození typu přiřazení, použijte tyto typy k určení, které postupy mapování platí.
Pokud při odvození pravidel přiřazení typu narazíte na definici omezeného typu:
- A pokud prostřednictvím dalšího odvození narazíte na jednu z textových konvencí uvedených v TEXTUAL-CONVENTION Makro, pak použijte pravidla mapování pro omezené typy a textové konvence.
- Jinak pokud narazíte na jeden z primitivních typů uvedených v tabulce primitivního typu, použijte pravidla mapování pro primitivní typy a omezené typy.
Pokud narazíte na některou z textových konvencí uvedených v makraTEXTUAL_CONVENTION, použijte pravidla mapování pro textové konvence.
Pokud narazíte na některý z primitivních typů uvedených v tabulce primitivních typů, použijte pravidla mapování pro primitivní typy.
Poznámka
Třídy obsahující typy vlastností, které neodpovídají výše uvedenému mapování, nejsou platné. V tomto případě zprostředkovatel vrátí chybu, pokud a když poskytovatel požádá o načtení definice třídy při provádění funkce načtení instance.
Omezený typ
Omezený typ je primitivní typ, pojmenovaný typ nebo textová konvence, která byla omezena určitým mechanismem podtypů definovaným v dokumentech SMI RFC 1213 a RFC 1903. Při podtypování se kvalifikátory CIM vyžadují k určení hodnot podtypu. Definice pojmenovaného typu v klauzuli SYNTAX mapuje doslovné odhady na kvalifikátor CIM vlastnost object_syntax až do, ale nezahrnuje omezení podtypu.
Podtypy můžou následovat v některém z následujících formátů:
Výčet INTEGER
Kvalifikátor vlastnosti CIM výčtu určuje výčtové hodnoty. Tento kvalifikátor je reprezentován jako řetězec obsahující čárkami oddělený seznam 32bitových celočíselné hodnoty. Následující tabulka uvádí typy mapování. Výchozí hodnota je vždy null.
Omezený typ MIB | Typ varianty CIM | Kvalifikátory CIM |
---|---|---|
Výčet INTEGER | VT_BSTR |
textual_convention: enumeratedinteger kódování: INTEGER cimtype: string |
BITY
Kvalifikátor vlastnosti CIM bitů určuje výčtové hodnoty. Tento kvalifikátor je reprezentován jako řetězec obsahující čárkami oddělený seznam 32bitových celočíselné hodnoty. Následující tabulka uvádí typy mapování. Výchozí hodnota je vždy null.
Omezený typ MIB | Typ varianty CIM | Kvalifikátory CIM |
---|---|---|
BITY | VT_ARRAY | VT_BSTR |
textual_convention: bity kódování: OCTETSTRING cimtype: string |
Proměnná délka
Pokud klauzule SYNTAX odkazuje na primitivní typ, pojmenovaný typ nebo textovou konvenci, která je podtypu podtypu jako řetězec OCTET délka nebo neprůhláská, kvalifikátor vlastnosti CIM variable_length určuje minimální, maximální a pevné délky hodnoty přidružené k definici typu. Tento kvalifikátor je implementován jako řetězec v následujícím formátu, kde jsou hodnoty s proměnnou délkou reprezentovány jako 32bitové celé číslo bez znaménka.
(((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
Pevná délka
Pokud klauzule SYNTAX odkazuje na primitivní typ, pojmenovaný typ nebo textovou konvenci, která je podtypu podtypu jako řetězec OCTET s pevnou délkou nebo neprůhláská, kvalifikátor vlastnosti CIM fixed_length určuje hodnotu pevné délky. Tento kvalifikátor je reprezentován jako celočíselná hodnota bez znaménka.
Rozmezí
Pokud klauzule SYNTAX odkazuje na primitivní typ, pojmenovaný typ nebo textovou konvenci, která je podtypem v rozsahu nebo pevné hodnoty INTEGER nebo Měřidlo, kvalifikátor CIM vlastnost variable_value určuje rozsah a pevné hodnoty přidružené k definici typu. Tento kvalifikátor je implementován jako řetězec v následujícím formátu, kde jsou hodnoty rozsahu a pevné délky reprezentovány jako 32bitové celé číslo bez znaménka.
(((0.9)..(0.9))|(0.9))(,(((0.9)..(0.9))|(0.9)))*
Příklad kódu
Následující příklad popisuje výčtový podtyp INTEGER.
Status := INTEGER {
up(1),
down(2),
testing(3)
}
Tento příklad se mapuje na:
enumeration("up(1),down(2),testing(3)")
Následující příklad kódu popisuje podtyp BITS.
Status := BITS {
up(1),
down(2),
testing(3)
}
Následující příklad kódu se mapuje na:
bits("up(1),down(2),testing(3)")
Následující příklad kódu popisuje podtyp s proměnnou délkou.
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))
Tento příklad se mapuje na:
display_hint("*1x:/1x:"),
encoding("OCTETSTRING"),
textual_convention("OCTETSTRING"),
variable_length ("1,4..85")
Následující příklad popisuje podtyp s pevnou délkou.
IPXADDRESS := OCTET STRING (SIZE (6))
Tento příklad se mapuje na:
fixed_length(6)
Následující příklad popisuje podtyp rozsahu.
Status := INTEGER (10..20|8)
Tento příklad se mapuje na:
variable_value("10..20,8")