Compartir a través de


Sintaxis (cláusula)

La macro OBJECT-TYPE contiene una cláusula SYNTAX que define los datos y el tipo del objeto MIB. Aunque el proveedor SNMP observa reglas generales para las cláusulas SYNTAX de asignación, el proveedor también sigue las reglas específicas de varios tipos de datos.

Nota

Para obtener más información sobre cómo instalar el proveedor, vea Configuración del entorno SNMP de WMI.

Las siguientes reglas de asignación se aplican a todos los tipos de datos descritos en la tabla siguiente:

  • La representación textual de la cláusula SYNTAX se asigna al calificador de propiedad CIM textual_convention.
  • La definición de tipo con nombre de la cláusula SYNTAX se asigna al calificador de propiedad CIM object_syntax. Esta asignación difiere en función del tipo de datos. Para obtener más información, consulte las descripciones de asignación.
  • El tipo SNMP utilizado al codificar marcos de protocolo SNMPv1 y SNMPv2C se asignan al calificador de propiedad CIM codificación.
  • El calificador de propiedad CIM cimtype contiene la representación textual que da formato al valor del protocolo CIM subyacente.

En la tabla siguiente se enumeran los tipos de datos que tienen reglas específicas que rigen el comportamiento de asignación de proveedores.

Tipo de datos SNMP Descripción
tipo Primitivo Uno de los tipos de datos básicos definidos en la estructura de información de administración (SMI) documenta RFC 1213 y RFC 1903.
de convención textual de Definición de tipo generada mediante el uso explícito de SNMPv2C macro TEXTUAL-CONVENTION o generada mediante el uso de un tipo con nombre. Una convención de texto asigna un nombre y, en algunos casos, un intervalo de valores a un tipo de datos existente.
tipo con nombre Referencia con nombre a un tipo primitivo, convención textual o tipo restringido.
de tipo restringido de Tipo primitivo, tipo con nombre o convención textual restringida por algún mecanismo de subtipo definido en los documentos RFC 1213 y RFC 1903 de SMI.

Tipo primitivo

El tipo primitivo es uno de los tipos de datos básicos definidos en la estructura de información de administración (SMI) documentos RFC 1213 y RFC 1903. Los tipos primitivos snmp se asignan a tipos definidos por CIM. En la tabla siguiente se muestra la asignación que se produce cuando la cláusula SYNTAX hace referencia explícitamente a un tipo primitivo para SNMPv1. El textual_convention, codificacióny los calificadores object_syntax siempre son los mismos que el tipo MIB y el valor predeterminado siempre es NULL.

Tipo de MIB Tipo de variante CIM valor cimtype
ENTERO VT_I4 sint32
OCTETSTRING VT_BSTR cadena
OBJECTIDENTIFIER VT_BSTR cadena
NULO VT_NULL No se admite
IpAddress VT_BSTR cadena
Mostrador VT_I4 uint32
Calibre VT_I4 uint32
TimeTicks VT_I4 uint32
Opaco VT_BSTR cadena
NetworkAddress VT_BSTR cadena

El proveedor omite la macro de OBJECT-TYPE cuando la cláusula SYNTAX hace referencia a NULL, ya sea explícitamente o a través de una asignación de tipo con nombre. En la tabla siguiente se muestra la asignación que se produce cuando la cláusula SYNTAX hace referencia explícitamente a un tipo primitivo para SNMPv2. El textual_convention, codificacióny los calificadores object_syntax siempre son los mismos que el tipo MIB y el valor predeterminado siempre es NULL.

Tipo de MIB Tipo de variante CIM valor cimtype
ENTERO VT_I4 sint32
OCTET STRING VT_BSTR cadena
IDENTIFICADOR DE OBJETO VT_BSTR cadena
IpAddress VT_BSTR cadena
Counter32 VT_I4 uint32
Medidor32 VT_I4 uint32
Unsigned32 VT_I4 uint32
Entero32 VT_I4 sint32
Counter64 VT_BSTR uint64
TimeTicks VT_I4 uint32
Opaco VT_BSTR cadena

Tipo con nombre

Los tipos con nombre SNMP se asignan a tipos definidos por CIM. Cuando la cláusula SYNTAX hace referencia a un tipo primitivo , convención de textoo tipo restringido a través de una derivación de asignación de tipos, use los tipos para determinar qué procedimientos de asignación se aplican.

  • Si, a través de la derivación de las reglas de asignación de tipos, se encuentra una definición de tipo restringida:

    • Y si, a través de una derivación adicional, encuentra una de las convenciones textuales enumeradas en TEXTUAL-CONVENTION Macro, aplique las reglas de asignación para los tipos restringidos y las convenciones textuales.
    • De lo contrario, si encuentra uno de los tipos primitivos enumerados en cualquiera de las tablas de tipos primitivos, aplique las reglas de asignación para los tipos primitivos y los tipos restringidos.
  • Si encuentra una de las convenciones de texto enumeradas en TEXTUAL_CONVENTION macro, aplique las reglas de asignación para las convenciones de texto.

  • Si encuentra uno de los tipos primitivos enumerados en cualquiera de las tablas de tipos primitivos, aplique las reglas de asignación para los tipos primitivos.

Nota

Las clases que contienen tipos de propiedad que no se ajustan a la asignación descrita anteriormente no son válidas. En este caso, el proveedor devuelve un error si y cuando el proveedor solicita la recuperación de una definición de clase mientras se ejecuta una función de recuperación de instancia.

Tipo restringido

Un tipo restringido es un tipo primitivo, un tipo con nombre o una convención textual restringida por algún mecanismo de subtipado definido en los documentos de SMI RFC 1213 y RFC 1903. Cuando se produce la subtyping, se requieren calificadores CIM adicionales para especificar los valores de subtipo. La definición de tipo con nombre de la cláusula SYNTAX asigna textualmente al calificador de la propiedad CIM object_syntax hasta, pero no incluye las restricciones del subtipo.

Los subtipos pueden seguir cualquiera de los siguientes formatos:

  • INTEGER enumerado

    El calificador de propiedad CIM enumeración especifica los valores enumerados. Este calificador se representa como una cadena que contiene una lista separada por comas de valores enteros de 32 bits con signo. En la tabla siguiente se enumeran los tipos de asignación. El valor predeterminado siempre es NULL.

Tipo de MIB restringido Tipo de variante CIM Calificadores CIM
INTEGER enumerado VT_BSTR textual_convention: enumeratedinteger
codificación: INTEGER
cimtype: string
  • BITS

    El calificador de propiedad CIM bits especifica los valores enumerados. Este calificador se representa como una cadena que contiene una lista separada por comas de valores enteros de 32 bits con signo. En la tabla siguiente se enumeran los tipos de asignación. El valor predeterminado siempre es NULL.

Tipo de MIB restringido Tipo de variante CIM Calificadores CIM
BITS VT_ARRAY | VT_BSTR textual_convention: bits
codificación: OCTETSTRING
cimtype: string
  • Longitud variable

    Cuando la cláusula SYNTAX hace referencia a un tipo primitivo, un tipo con nombre o una convención textual que está subtipo como una cadena OCTET de longitud variable o opaca, el calificador de propiedad CIM variable_length especifica los valores mínimos, máximos y de longitud fija asociados a la definición de tipo. Este calificador se implementa como una cadena en el formato siguiente donde los valores de longitud variable se representan como enteros de 32 bits sin signo.

    (((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
    
  • Longitud fija

    Cuando la cláusula SYNTAX hace referencia a un tipo primitivo, un tipo con nombre o una convención textual que está subtipo como una cadena OCTET de longitud fija o opaca, el calificador de propiedad CIM fixed_length especifica el valor de longitud fija. Este calificador se representa como un valor entero de 32 bits sin signo.

  • Gama

    Cuando la cláusula SYNTAX hace referencia a un tipo primitivo, un tipo con nombre o una convención textual que está subtipo como integer o de valor fijo, el calificador de propiedad CIM variable_value especifica los valores fijos y rangos asociados a la definición de tipo. Este calificador se implementa como una cadena en el formato siguiente donde los valores de intervalo y longitud fija se representan como enteros de 32 bits sin signo.

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

Código de ejemplo

En el ejemplo siguiente se describe un subtipo INTEGER enumerado.

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

Este ejemplo se asigna a:

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

En el ejemplo de código siguiente se describe un subtipo BITS.

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

El ejemplo de código siguiente se asigna a:

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

En el ejemplo de código siguiente se describe un subtipo de longitud variable.

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

Este ejemplo se asigna a:

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

En el ejemplo siguiente se describe un subtipo de longitud fija.

IPXADDRESS := OCTET STRING (SIZE (6))

Este ejemplo se asigna a:

fixed_length(6)

En el ejemplo siguiente se describe un subtipo de intervalo.

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

Este ejemplo se asigna a:

variable_value("10..20,8")