Condividi tramite


Clausola SYNTAX

La macro OBJECT-TYPE contiene una clausola SYNTAX che definisce i dati e il tipo per l'oggetto MIB. Mentre il provider SNMP osserva le regole generali per le clausole SYNTAX di mapping, il provider segue anche regole specifiche per diversi tipi di dati.

Nota

Per altre informazioni sull'installazione del provider, vedere Configurazione dell'ambiente SNMP WMI.

Le regole di mapping seguenti si applicano a tutti i tipi di dati descritti nella tabella seguente:

  • La rappresentazione testuale della clausola SYNTAX viene mappata al qualificatore di proprietà CIM textual_convention.
  • La definizione del tipo denominato nella clausola SYNTAX esegue il mapping al qualificatore di proprietà CIM object_syntax. Questo mapping varia a seconda del tipo di dati. Per altre informazioni, vedere le descrizioni dei mapping.
  • Il tipo SNMP usato per la codifica dei fotogrammi del protocollo SNMPv1 e SNMPv2C viene mappato al qualificatore di proprietà CIM codifica.
  • Il qualificatore di proprietà CIM cimtype contiene la rappresentazione testuale che formatta il valore del protocollo CIM sottostante.

Nella tabella seguente sono elencati i tipi di dati con regole specifiche che regolano il comportamento di mapping del provider.

Tipo di dati SNMP Descrizione
tipo primitivo Uno dei tipi di dati di base definiti nella struttura delle informazioni di gestione (SMI) documenta RFC 1213 e RFC 1903.
convenzione testuale Definizione del tipo generata tramite l'uso esplicito di SNMPv2C TEXTUAL-CONVENTION macro o generata tramite l'uso di un tipo denominato. Una convenzione testuale assegna un nome e, in alcuni casi, un intervallo di valori a un tipo di dati esistente.
tipo denominato Riferimento denominato a un tipo primitivo, a una convenzione testuale o a un tipo vincolato.
tipo vincolato Tipo primitivo, tipo denominato o convenzione testuale vincolata da un meccanismo di sottotipizzazione definito nei documenti SMI RFC 1213 e RFC 1903.

Tipo primitivo

Il tipo primitivo è uno dei tipi di dati di base definiti nei documenti SMI (Structure of Management Information) RFC 1213 e RFC 1903. I tipi primitivi SNMP eseguono il mapping ai tipi definiti da CIM. La tabella seguente elenca il mapping che si verifica quando la clausola SYNTAX fa riferimento in modo esplicito a un tipo primitivo per SNMPv1. I qualificatori textual_convention, codificae object_syntax sono sempre uguali al tipo MIB e il valore predefinito è sempre NULL.

Tipo MIB Tipo variant CIM valore cimtype
NUMERO INTERO VT_I4 sint32
OCTETSTRING VT_BSTR stringa
OBJECTIDENTIFIER VT_BSTR stringa
NULLO VT_NULL Non supportato
IpAddress VT_BSTR stringa
Contatore VT_I4 uint32
Misuratore VT_I4 uint32
TimeTicks VT_I4 uint32
Opaco VT_BSTR stringa
NetworkAddress VT_BSTR stringa

Il provider ignora la macro OBJECT-TYPE quando la clausola SYNTAX fa riferimento a NULL, in modo esplicito o tramite un'assegnazione di tipo denominata. La tabella seguente elenca il mapping che si verifica quando la clausola SYNTAX fa riferimento in modo esplicito a un tipo primitivo per SNMPv2. I qualificatori textual_convention, codificae object_syntax sono sempre uguali al tipo MIB e il valore predefinito è sempre NULL.

Tipo MIB Tipo variant CIM valore cimtype
NUMERO INTERO VT_I4 sint32
OCTET STRING VT_BSTR stringa
IDENTIFICATORE OGGETTO VT_BSTR stringa
IpAddress VT_BSTR stringa
Contatore32 VT_I4 uint32
Misuratore32 VT_I4 uint32
Unsigned32 VT_I4 uint32
Integer32 VT_I4 sint32
Contatore64 VT_BSTR uint64
TimeTicks VT_I4 uint32
Opaco VT_BSTR stringa

Tipo denominato

I tipi denominati SNMP eseguono il mapping ai tipi definiti da CIM. Quando la clausola SYNTAX fa riferimento a un tipo primitivo , convenzione testualeo tipo vincolato tramite una derivazione dell'assegnazione di tipi, utilizzare i tipi per determinare quali procedure di mapping si applicano.

  • Se, tramite la derivazione delle regole di assegnazione dei tipi, viene visualizzata una definizione di tipo vincolato:

    • Se, tramite ulteriori derivazioni, si verifica una delle convenzioni testuali elencate in TEXTUAL-CONVENTION Macro, applicare le regole di mapping per i tipi vincolati e le convenzioni testuali.
    • In caso contrario, se si verifica uno dei tipi primitivi elencati in una tabella dei tipi primitivi, applicare le regole di mapping per i tipi primitivi e i tipi vincolati.
  • Se si verifica una delle convenzioni testuali elencate in TEXTUAL_CONVENTION Macro, applicare le regole di mapping per le convenzioni testuali.

  • Se si verifica uno dei tipi primitivi elencati in una tabella dei tipi primitivi, applicare le regole di mapping per i tipi primitivi.

Nota

Le classi contenenti tipi di proprietà non conformi al mapping descritto in precedenza non sono valide. In questo caso, il provider restituisce un errore se e quando il provider richiede il recupero di una definizione di classe durante l'esecuzione di una funzione di recupero di un'istanza.

Tipo vincolato

Un tipo vincolato è un tipo primitivo, un tipo denominato o una convenzione testuale vincolata da un meccanismo di sottotipizzazione definito nei documenti SMI RFC 1213 e RFC 1903. Quando si verifica una sottotipazione, sono necessari qualificatori CIM aggiuntivi per specificare i valori del sottotipo. La definizione di tipo denominato nella clausola SYNTAX esegue il mapping verbatim al qualificatore di proprietà CIM object_syntax fino a , ma non include i vincoli del sottotipo.

I sottotipi possono seguire uno dei formati seguenti:

  • Integer enumerato

    Il qualificatore di proprietà CIM 'enumerazione specifica i valori enumerati. Questo qualificatore è rappresentato come stringa contenente un elenco delimitato da virgole di valori interi con segno a 32 bit. Nella tabella seguente sono elencati i tipi di mapping. Il valore predefinito è sempre NULL.

Tipo MIB vincolato Tipo variant CIM Qualificatori CIM
Integer enumerato VT_BSTR textual_convention: enumeratedinteger
codifica: INTEGER
cimtype: string
  • BIT

    Il qualificatore di proprietà CIM bit specifica i valori enumerati. Questo qualificatore è rappresentato come stringa contenente un elenco delimitato da virgole di valori interi con segno a 32 bit. Nella tabella seguente sono elencati i tipi di mapping. Il valore predefinito è sempre NULL.

Tipo MIB vincolato Tipo variant CIM Qualificatori CIM
BIT VT_ARRAY | VT_BSTR textual_convention: bit
codifica: OCTETSTRING
cimtype: string
  • Lunghezza variabile

    Quando la clausola SYNTAX fa riferimento a un tipo primitivo, a un tipo denominato o a una convenzione testuale sottotipata come STRINGA OCTET a lunghezza variabile o opaco, il qualificatore di proprietà CIM variable_length specifica i valori minimo, massimo e a lunghezza fissa associati alla definizione del tipo. Questo qualificatore viene implementato come stringa nel formato seguente in cui i valori a lunghezza variabile sono rappresentati come interi senza segno a 32 bit.

    (((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
    
  • Lunghezza fissa

    Quando la clausola SYNTAX fa riferimento a un tipo primitivo, a un tipo denominato o a una convenzione testuale sottotipata come STRINGA OTTET a lunghezza fissa o opaco, il qualificatore di proprietà CIM fixed_length specifica il valore a lunghezza fissa. Questo qualificatore è rappresentato come un valore intero senza segno a 32 bit.

  • Gamma

    Quando la clausola SYNTAX fa riferimento a un tipo primitivo, a un tipo denominato o a una convenzione testuale sottotipata come integer o a valore fisso o a valore fisso, il qualificatore di proprietà CIM variable_value specifica i valori compresi nell'intervallo e fissi associati alla definizione del tipo. Questo qualificatore viene implementato come stringa nel formato seguente in cui i valori di intervallo e lunghezza fissa sono rappresentati come interi senza segno a 32 bit.

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

Codice di esempio

Nell'esempio seguente viene descritto un sottotipo INTEGER enumerato.

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

In questo esempio viene eseguito il mapping a:

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

Nell'esempio di codice seguente viene descritto un sottotipo BITS.

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

Nell'esempio di codice seguente viene eseguito il mapping a:

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

Nell'esempio di codice seguente viene descritto un sottotipo a lunghezza variabile.

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 questo esempio viene eseguito il mapping a:

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

Nell'esempio seguente viene descritto un sottotipo a lunghezza fissa.

IPXADDRESS := OCTET STRING (SIZE (6))

In questo esempio viene eseguito il mapping a:

fixed_length(6)

Nell'esempio seguente viene descritto un sottotipo di intervallo.

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

In questo esempio viene eseguito il mapping a:

variable_value("10..20,8")