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