Dela via


SYNTAX-sats

Makrot OBJECT-TYPE innehåller en SYNTAX-sats som definierar data och typ för MIB-objektet. Även om SNMP-providern observerar allmänna regler för mappning av SYNTAX-satser följer providern även regler som är specifika för flera datatyper.

Not

Mer information om hur du installerar providern finns i Konfigurera WMI SNMP-miljön.

Följande mappningsregler gäller för alla datatyper som beskrivs i tabellen nedan:

  • Textrepresentationen av SYNTAX-satsen mappar till CIM-egenskapskvalificeraren textual_convention.
  • Den namngivna typdefinitionen i SYNTAX-satsen mappar till CIM-egenskapskvalificeraren object_syntax. Den här mappningen varierar beroende på datatyp. Mer information finns i mappningsbeskrivningarna.
  • Den SNMP-typ som används vid kodning av SNMPv1- och SNMPv2C-protokollramar mappar till CIM-egenskapskvalificeraren kodning.
  • CIM-egenskapskvalificeraren cimtype innehåller den textrepresentation som formaterar det underliggande CIM-protokollvärdet.

I följande tabell visas datatyper som har specifika regler som styr providermappningsbeteendet.

SNMP-datatyp Beskrivning
primitiv typ En av de grundläggande datatyper som definieras i SMI-dokumenten RFC 1213 och RFC 1903.
textkonvention Typdefinition som genereras genom explicit användning av SNMPv2C-TEXTUAL-CONVENTION makro eller genereras med hjälp av en namngiven typ. En textkonvention tilldelar ett namn och i vissa fall ett värdeintervall till en befintlig datatyp.
Namngiven typ Namngiven referens till en primitiv typ, textkonvention eller begränsad typ.
begränsad typ Primitiv typ, namngiven typ eller textkonvention som har begränsats av någon undertypningsmekanism som definierats i SMI-dokumenten RFC 1213 och RFC 1903.

Primitiv typ

Den primitiva typen är en av de grundläggande datatyperna som definieras i SMI-dokumenten RFC 1213 och RFC 1903. Primitiva SNMP-typer mappas till CIM-definierade typer. I följande tabell visas den mappning som inträffar när SYNTAX-satsen uttryckligen refererar till en primitiv typ för SNMPv1. textual_convention, kodningoch object_syntax kvalificerare är alltid samma som MIB-typen och standardvärdet är alltid NULL-.

MIB-typ CIM-varianttyp cimtype-värde
HELTAL VT_I4 sint32
OCTETSTRING VT_BSTR sträng
OBJECTIDENTIFIER VT_BSTR sträng
NOLL VT_NULL Stöds inte
IpAddress VT_BSTR sträng
Räknare VT_I4 uint32
Mätare VT_I4 uint32
TimeTicks VT_I4 uint32
Ogenomskinlig VT_BSTR sträng
NetworkAddress VT_BSTR sträng

Providern ignorerar det OBJECT-TYPE makrot när SYNTAX-satsen refererar till NULL-, antingen explicit eller via en namngiven typtilldelning. I följande tabell visas den mappning som inträffar när SYNTAX-satsen uttryckligen refererar till en primitiv typ för SNMPv2. textual_convention, kodningoch object_syntax kvalificerare är alltid samma som MIB-typen och standardvärdet är alltid NULL-.

MIB-typ CIM-varianttyp cimtype-värde
HELTAL VT_I4 sint32
OKTETTSTRÄNG VT_BSTR sträng
OBJEKTIDENTIFIERARE VT_BSTR sträng
IpAddress VT_BSTR sträng
Räknare 32 VT_I4 uint32
Mätare 32 VT_I4 uint32
Osignerad 32 VT_I4 uint32
Heltal 32 VT_I4 sint32
Counter64 VT_BSTR uint64
TimeTicks VT_I4 uint32
Ogenomskinlig VT_BSTR sträng

Namngiven typ

SNMP-namngivna typer mappas till CIM-definierade typer. När SYNTAX-satsen refererar till en primitiv typ, textkonventioneller begränsad typ genom en typtilldelningsinstruering använder du dessa typer för att avgöra vilka mappningsprocedurer som gäller.

  • Om du genom härledning av typtilldelningsregler stöter på en begränsad typdefinition:

    • Och om du genom ytterligare härledning stöter på någon av de textkonventioner som anges i TEXTUAL-CONVENTION Makrotillämpar du mappningsreglerna för begränsade typer och textkonventioner.
    • Annars, om du stöter på någon av de primitiva typer som anges i någon av de primitiva typtabellerna, tillämpar du mappningsreglerna för primitiva typer och begränsade typer.
  • Om du stöter på någon av de textkonventioner som anges i TEXTUAL_CONVENTION Makrotillämpar du mappningsreglerna för textkonventioner.

  • Om du stöter på någon av de primitiva typerna som anges i någon av de primitiva typtabellerna tillämpar du mappningsreglerna för primitiva typer.

Not

Klasser som innehåller egenskapstyper som inte överensstämmer med den mappning som beskrivs ovan är inte giltiga. I det här fallet returnerar providern ett fel om och när providern begär hämtning av en klassdefinition när en instanshämtningsfunktion körs.

Begränsad typ

En begränsad typ är en primitiv typ, namngiven typ eller textkonvention som har begränsats av någon undertypmekanism som definierats i SMI-dokumenten RFC 1213 och RFC 1903. När undertyperingen inträffar krävs ytterligare CIM-kvalificerare för att ange undertypsvärdena. Definitionen av namngiven typ i SYNTAX-satsen mappar ordagrant till CIM-egenskapskvalificeraren object_syntax upp till, men inkluderar inte begränsningarna för undertypen.

Undertyper kan följa något av följande format:

  • Uppräknat INTEGER

    CIM-egenskapskvalificeraren uppräkning anger de uppräknade värdena. Den här kvalificeraren representeras som en sträng som innehåller en kommaavgränsad lista med signerade 32-bitars heltalsvärden. I följande tabell visas mappningstyperna. Standardvärdet är alltid NULL-.

Begränsad MIB-typ CIM-varianttyp CIM-kvalificerare
Uppräknat INTEGER VT_BSTR textual_convention: uppräknatintegere
kodning: INTEGER
cimtype: string
  • BITAR

    CIM-egenskapskvalificeraren bitar anger de uppräknade värdena. Den här kvalificeraren representeras som en sträng som innehåller en kommaavgränsad lista med signerade 32-bitars heltalsvärden. I följande tabell visas mappningstyperna. Standardvärdet är alltid NULL-.

Begränsad MIB-typ CIM-varianttyp CIM-kvalificerare
BITAR VT_ARRAY | VT_BSTR textual_convention: bitar
kodning: OCTETSTRING
cimtype: string
  • Variabel längd

    När SYNTAX-satsen refererar till en primitiv typ, namngiven typ eller textkonvention som är undertypad som en OCTET STRING eller Opaque med variabel längd, anger CIM-egenskapskvalificeraren variable_length de värden för lägsta, högsta och fast längd som är associerade med typdefinitionen. Den här kvalificeraren implementeras som en sträng i följande format där värdena för variabellängd representeras som osignerade 32-bitars heltal.

    (((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
    
  • Fast längd

    När SYNTAX-satsen refererar till en primitiv typ, namngiven typ eller textkonvention som är undertypad som en OCTET STRING med fast längd eller ogenomskinlig, anger CIM-egenskapskvalificeraren fixed_length värdet för fast längd. Den här kvalificeraren representeras som ett osignerat 32-bitars heltalsvärde.

  • Sortiment

    När SYNTAX-satsen refererar till en primitiv typ, namngiven typ eller textkonvention som är undertypad som ett heltal med intervall eller fast värde eller mätare, anger CIM-egenskapskvalificeraren variable_value de intervall- och fasta värden som är associerade med typdefinitionen. Den här kvalificeraren implementeras som en sträng i följande format där värdena för intervall och fast längd representeras som osignerade 32-bitars heltal.

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

Exempelkod

I följande exempel beskrivs en uppräknad INTEGER-undertyp.

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

Det här exemplet mappar till:

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

I följande kodexempel beskrivs en BITS-undertyp.

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

Följande kodexempel mappar till:

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

I följande kodexempel beskrivs en undertyp med variabel längd.

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

Det här exemplet mappar till:

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

I följande exempel beskrivs en undertyp med fast längd.

IPXADDRESS := OCTET STRING (SIZE (6))

Det här exemplet mappar till:

fixed_length(6)

I följande exempel beskrivs en intervallundertyp.

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

Det här exemplet mappar till:

variable_value("10..20,8")