SYNTAXE, clause
La macro OBJECT-TYPE contient une clause SYNTAX qui définit les données et le type de l’objet MIB. Bien que le fournisseur SNMP observe des règles générales pour les clauses SYNTAX de mappage, le fournisseur suit également des règles spécifiques à plusieurs types de données.
Note
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ée 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, consultez les descriptions de mappage.
- Le type SNMP utilisé lors de l’encodage des trames de protocole SNMPv1 et SNMPv2C est mappé au qualificateur de propriété CIM l’encodage.
- 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 qui régissent 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 la structure des informations de gestion (SMI) documente RFC 1213 et RFC 1903. |
convention textuelle | Définition de type générée par le biais de l’utilisation explicite du SNMPv2C TEXTUAL-CONVENTION macro ou générée à l’aide d’un type nommé. Une convention textuelle affecte 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 contrainte | Type primitif, type nommé ou convention textuelle qui a été contrainte par un mécanisme de sous-frappe 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 SMI (Structure of Management Information) RFC 1213 et RFC 1903. Les types primitifs SNMP correspondent aux 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. Les textual_convention, d’encodage et les qualificateurs object_syntax sont toujours identiques au type MIB et la valeur par défaut est toujours NULL.
Type MIB | Type de variante CIM | valeur cimtype |
---|---|---|
ENTIER | VT_I4 | sint32 |
OCTETSTRING | VT_BSTR | chaîne |
OBJECTIDENTIFIER | VT_BSTR | chaîne |
ZÉRO | VT_NULL | Non pris en charge |
IpAddress | VT_BSTR | chaîne |
Compteur | VT_I4 | uint32 |
Jauge | VT_I4 | uint32 |
TimeTicks | VT_I4 | uint32 |
Opaque | VT_BSTR | chaîne |
NetworkAddress | VT_BSTR | chaîne |
Le fournisseur ignore la macro OBJECT-TYPE lorsque la clause SYNTAX fait référence à NULL , explicitement ou via une affectation 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. Les textual_convention, d’encodage et les qualificateurs object_syntax sont toujours identiques au type MIB et la valeur par défaut est toujours NULL.
Type MIB | Type de variante CIM | valeur cimtype |
---|---|---|
ENTIER | VT_I4 | sint32 |
CHAÎNE D’OCTETS | VT_BSTR | chaîne |
IDENTIFICATEUR D’OBJET | VT_BSTR | chaîne |
IpAddress | VT_BSTR | chaîne |
Compteur32 | VT_I4 | uint32 |
Jauge32 | VT_I4 | uint32 |
Non signé32 | VT_I4 | uint32 |
Entier32 | VT_I4 | sint32 |
Compteur64 | VT_BSTR | uint64 |
TimeTicks | VT_I4 | uint32 |
Opaque | VT_BSTR | chaîne |
Type nommé
Les types nommés SNMP correspondent aux types définis par CIM. Lorsque la clause SYNTAX fait référence à un type primitif , convention textuelle, ou type contraint par le biais d’une dérivation d’affectation de type, utilisez les types pour déterminer quelles procédures de mappage s’appliquent.
Si, par le biais de la dérivation des règles d’affectation de type, vous rencontrez une définition de type contrainte :
- Et si, par le biais d’une dérivation supplémentaire, vous rencontrez l’une des conventions textuelles répertoriées dans TEXTUAL-CONVENTION macro, puis 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 types primitifs, 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 TEXTUAL_CONVENTION macro, 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 types primitifs, appliquez les règles de mappage pour les types primitifs.
Note
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 le fournisseur demande la récupération d’une définition de classe lors de l’exécution d’une fonction de récupération d’instance.
Type contraint
Un type contraint est un type primitif, un type nommé ou une convention textuelle qui a été contrainte par un mécanisme de sous-frappe défini dans les documents SMI RFC 1213 et RFC 1903. Lorsque la sous-saisie se produit, d’autres qualificateurs CIM sont requis pour spécifier les valeurs de sous-type. La définition de type nommé dans la clause SYNTAX mappe le détail au qualificateur de propriété CIM object_syntax jusqu’à, mais n’inclut pas les contraintes du sous-type.
Les sous-types peuvent suivre l’un des formats suivants :
ENTIER énuméré
Le qualificateur de propriété CIM énumération 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 NULL.
Type MIB contraint | Type de variante CIM | Qualificateurs CIM |
---|---|---|
ENTIER énuméré | VT_BSTR |
textual_convention: énumération d’encodage : INTEGER cimtype: chaîne |
BRIBES
Le qualificateur de propriété CIM bits 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 NULL.
Type MIB contraint | Type de variante CIM | Qualificateurs CIM |
---|---|---|
BRIBES | VT_ARRAY | VT_BSTR |
textual_convention: bits encodage: OCTETSTRING cimtype: chaîne |
Longueur variable
Lorsque la clause SYNTAX fait référence à un type primitif, un type nommé ou une convention textuelle qui est sous-typée sous forme de chaîne d’octets 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é en tant que 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 SYNTAX fait référence à un type primitif, à un type nommé ou à une convention textuelle qui est sous-typée sous forme de chaîne d’octets de longueur fixe ou opaque, 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.
Gamme
Lorsque la clause SYNTAX fait référence à un type primitif, un type nommé ou une convention textuelle qui est sous-typée sous la forme d’un entier ou d’une jauge à valeur fixe ou à valeur fixe, le qualificateur de propriété CIM variable_value spécifie les valeurs de plage et fixe associées à la définition de type. Ce qualificateur est implémenté en tant que 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 INTEGER énuméré.
Status := INTEGER {
up(1),
down(2),
testing(3)
}
Cet exemple correspond à :
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 correspond à :
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 correspond à :
fixed_length(6)
L’exemple suivant décrit un sous-type de plage.
Status := INTEGER (10..20|8)
Cet exemple correspond à :
variable_value("10..20,8")