Clause SYNTAX
La macro OBJECT-TYPE contient une clause SYNTAX qui définit les données et le type de l’objet Mio. Bien que le fournisseur SNMP observe des règles générales pour le mappage des clauses SYNTAX, le fournisseur suit également des règles spécifiques à plusieurs types de données.
Notes
Pour plus d’informations sur l’installation du fournisseur, consultez Configuration de l’environnement SNMP WMI.
Les règles de mappage suivantes s’appliquent à tous les types de données décrits dans le tableau ci-dessous :
- La représentation textuelle de la clause SYNTAX est mappée au qualificateur de propriété CIM textual_convention.
- La définition de type nommé dans la clause SYNTAX est mappée au qualificateur de propriété CIM object_syntax. Ce mappage diffère selon le type de données. Pour plus d'informations, voir les descriptions de mappage.
- Le type SNMP utilisé lors de l’encodage des trames de protocole SNMPv1 et SNMPv2C est mappé au codage du qualificateur de propriété CIM.
- Le qualificateur de propriété CIM cimtype contient la représentation textuelle qui met en forme la valeur de protocole CIM sous-jacente.
Le tableau suivant répertorie les types de données qui ont des règles spécifiques régissant le comportement de mappage du fournisseur.
Type de données SNMP | Description |
---|---|
Type primitif | L’un des types de données de base définis dans les documents de la structure de l'information de gestion (SMI) RFC 1213 et RFC 1903. |
Convention textuelle | Définition de type générée via l’utilisation explicite de la macro SNMPv2C TEXTUAL-CONVENTION ou générée à l’aide d’un type nommé. Une convention textuelle attribue un nom et, dans certains cas, une plage de valeurs à un type de données existant. |
Type nommé | Référence nommée à un type primitif, à une convention textuelle ou à un type contraint. |
Type contraint | Type primitif, type nommé ou convention textuelle qui a été limité par un mécanisme de sous-typage défini dans les documents SMI RFC 1213 et RFC 1903. |
Type primitif
Le type primitif est l’un des types de données de base définis dans les documents de la structure de l'information de gestion (SMI) RFC 1213 et RFC 1903. Les types primitifs SNMP sont mappés à des types définis par CIM. Le tableau suivant répertorie le mappage qui se produit lorsque la clause SYNTAX fait explicitement référence à un type primitif pour SNMPv1. La convention_textuelle, l’encodage et les qualificateurs de syntaxe_objet sont toujours identiques au type Mio et la valeur par défaut est toujours NULL.
Type Mio | Type de variante CIM | valeur cimtype |
---|---|---|
INTEGER | VT_I4 | sint32 |
OCTETSTRING | VT_BSTR | string |
OBJECTIDENTIFIER | VT_BSTR | string |
NULL | VT_NULL | Non prise en charge |
IpAddress | VT_BSTR | string |
Compteur | VT_I4 | uint32 |
Jauge | VT_I4 | uint32 |
TimeTicks | VT_I4 | uint32 |
Opaque | VT_BSTR | string |
NetworkAddress | VT_BSTR | string |
Le fournisseur ignore la macro OBJECT-TYPE lorsque la clause SYNTAX fait référence à NULL, explicitement ou par le biais d’une attribution de type nommé. Le tableau suivant répertorie le mappage qui se produit lorsque la clause SYNTAX fait explicitement référence à un type primitif pour SNMPv2. La convention_textuelle, l’encodage et les qualificateurs de syntaxe_objet sont toujours identiques au type Mio et la valeur par défaut est toujours NULL.
Type Mio | Type de variante CIM | valeur cimtype |
---|---|---|
INTEGER | VT_I4 | sint32 |
CHAÎNE D’OCTETS | VT_BSTR | string |
IDENTIFICATEUR D'OBJET | VT_BSTR | string |
IpAddress | VT_BSTR | string |
Counter32 | VT_I4 | uint32 |
Gauge32 | VT_I4 | uint32 |
Unsigned32 | VT_I4 | uint32 |
Integer32 | VT_I4 | sint32 |
Counter64 | VT_BSTR | uint64 |
TimeTicks | VT_I4 | uint32 |
Opaque | VT_BSTR | string |
Type nommé
Les types nommés SNMP sont mappés aux types définis par CIM. Lorsque la clause SYNTAX fait référence à un type primitif, à une convention textuelle ou à un type contraint par le biais d’une dérivation d’affectation de type, utilisez ces différents types pour déterminer les procédures de mappage qui s’appliquent.
Si, par dérivation des règles d’affectation de type, vous rencontrez une définition de type contraint :
- Et si, par le biais d’une dérivation plus poussée, vous rencontrez l’une des conventions textuelles répertoriées dans la Macro TEXTUAL-CONVENTION, alors appliquez les règles de mappage pour les types contraints et les conventions textuelles.
- Sinon, si vous rencontrez l’un des types primitifs répertoriés dans l’une ou l’autre table de type primitif, appliquez les règles de mappage pour les types primitifs et les types contraints.
Si vous rencontrez l’une des conventions textuelles répertoriées dans Macro CONVENTION_TEXTUELLE, appliquez les règles de mappage pour les conventions textuelles.
Si vous rencontrez l’un des types primitifs répertoriés dans l’une ou l’autre table de type primitif, appliquez les règles de mappage pour les types primitifs.
Notes
Les classes contenant des types de propriétés qui ne sont pas conformes au mappage décrit ci-dessus ne sont pas valides. Dans ce cas, le fournisseur retourne une erreur si et quand il demande la récupération d’une définition de classe lors de l’exécution d’une fonction de récupération.
Type contraint
Un type contraint est un type primitif, un type nommé ou une convention textuelle qui a été limité par un mécanisme de sous-typage défini dans les documents SMI RFC 1213 et RFC 1903. En cas de sous-typage, des qualificateurs CIM supplémentaires sont nécessaires pour spécifier les valeurs de sous-type. La définition de type nommé dans la clause SYNTAXE mappe textuellement au qualificateur de propriété CIM object_syntax jusqu’à, mais sans inclure les contraintes du sous-type.
Les sous-types peuvent suivre l’un des formats suivants :
ENTIER énuméré
L’énumération du qualificateur de propriété CIM spécifie les valeurs énumérées. Ce qualificateur est représenté sous la forme d’une chaîne contenant une liste séparée par des virgules de valeurs entières 32 bits signées. Le tableau suivant répertorie les types de mappage. La valeur par défaut est toujours NULLE.
Type Mio contraint | Type de variante CIM | Qualificateurs CIM |
---|---|---|
ENTIER énuméré | VT_BSTR |
convention_textuelle : enumeratedinteger encodage : ENTIER cimtype: chaîne |
BITS
Les bits de qualification des propriétés CIM spécifient les valeurs énumérées. Ce qualificateur est représenté sous la forme d’une chaîne contenant une liste séparée par des virgules de valeurs entières 32 bits signées. Le tableau suivant répertorie les types de mappage. La valeur par défaut est toujours NULLE.
Type Mio contraint | Type de variante CIM | Qualificateurs CIM |
---|---|---|
BITS | VT_ARRAY | VT_BSTR |
convention_textuelle : bits encodage: OCTETSTRING cimtype: chaîne |
Longueur variable
Lorsque la clause SYNTAXE fait référence à un type primitif, un type nommé ou une convention textuelle qui est sous-typé en tant que chaîne octet de longueur variable ou opaque, le qualificateur de propriété CIM variable_length spécifie les valeurs minimales, maximales et de longueur fixe associées à la définition de type. Ce qualificateur est implémenté sous forme de chaîne au format suivant, où les valeurs de longueur variable sont représentées sous forme d’entiers 32 bits non signés.
(((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
Longueur fixe
Lorsque la clause SYNTAXE fait référence à un type primitif, un type nommé ou une convention textuelle qui est sous-typé en tant que type OCTET STRING ou Opaque de longueur fixe, le qualificateur de propriété CIM fixed_length spécifie la valeur de longueur fixe. Ce qualificateur est représenté sous la forme d’une valeur entière 32 bits non signée.
Plage
Lorsque la clause SYNTAXE fait référence à un type primitif, un type nommé ou une convention textuelle qui est sous-typé en tant qu’ENTIER ou jauge à valeur fixe ou étendue, le qualificateur de propriété CIM variable_value spécifie les valeurs étendues et fixes associées à la définition de type. Ce qualificateur est implémenté sous la forme d’une chaîne au format suivant, où les valeurs de plage et de longueur fixe sont représentées sous forme d’entiers 32 bits non signés.
(((0.9)..(0.9))|(0.9))(,(((0.9)..(0.9))|(0.9)))*
Exemple de code
L’exemple suivant décrit un sous-type ENTIER énuméré.
Status := INTEGER {
up(1),
down(2),
testing(3)
}
Cet exemple mappe à :
enumeration("up(1),down(2),testing(3)")
L’exemple de code suivant décrit un sous-type BITS.
Status := BITS {
up(1),
down(2),
testing(3)
}
L’exemple de code suivant est mappé à :
bits("up(1),down(2),testing(3)")
L’exemple de code suivant décrit un sous-type de longueur 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))
Cet exemple mappe à :
display_hint("*1x:/1x:"),
encoding("OCTETSTRING"),
textual_convention("OCTETSTRING"),
variable_length ("1,4..85")
L’exemple suivant décrit un sous-type de longueur fixe.
IPXADDRESS := OCTET STRING (SIZE (6))
Cet exemple mappe à :
fixed_length(6)
L’exemple suivant décrit un sous-type de plage.
Status := INTEGER (10..20|8)
Cet exemple mappe à :
variable_value("10..20,8")