Sdílet prostřednictvím


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