次の方法で共有


SYNTAX 句

OBJECT-TYPE マクロには、MIB オブジェクトのデータと型を定義する SYNTAX 句が含まれています。 SNMP プロバイダーは、SYNTAX 句のマッピングに関する一般的な規則を確認しますが、プロバイダーは複数のデータ型に固有の規則にも従います。

手記

プロバイダーのインストールの詳細については、「WMI SNMP 環境の設定」を参照してください。

次のマッピング規則は、次の表で説明するすべてのデータ型に適用されます。

  • SYNTAX 句のテキスト表現は、CIM プロパティ修飾子 textual_conventionにマップされます。
  • SYNTAX 句の名前付き型定義は、CIM プロパティ修飾子 object_syntaxにマップされます。 このマッピングは、データ型によって異なります。 詳細については、マッピングの説明を参照してください。
  • SNMPv1 および SNMPv2C プロトコル フレームのエンコード時に使用される SNMP の種類は、エンコード CIM プロパティ修飾子にマップされます。
  • cimtype CIM プロパティ修飾子には、基になる CIM プロトコル値を書式設定するテキスト表現が含まれています。

次の表に、プロバイダー マッピングの動作を制御する特定のルールを持つデータ型を示します。

SNMP データ型 形容
プリミティブ型 する 管理情報の構造 (SMI) で定義されている基本的なデータ型の 1 つは、RFC 1213 と RFC 1903 を文書化します。
テキスト規則の SNMPv2C TEXTUAL-CONVENTION マクロを明示的に使用して生成されるか、名前付き型を使用して生成された型定義。 テキスト規則では、名前が割り当てられ、場合によっては既存のデータ型に値の範囲が割り当てられます。
名前付き型 プリミティブ型、テキスト規則、または制約付き型への名前付き参照。
制約付き型の SMI で定義されているサブタイピング メカニズムによって制約されているプリミティブ型、名前付き型、またはテキスト規則は、RFC 1213 と RFC 1903 を文書化します。

プリミティブ型

プリミティブ型は、RFC 1213 および RFC 1903 の管理情報の構造 (SMI) ドキュメントで定義されている基本的なデータ型の 1 つです。 SNMP プリミティブ型は CIM 定義型にマップされます。 次の表に、SYNTAX 句が SNMPv1 のプリミティブ型を明示的に参照する場合に発生するマッピングを示します。 textual_conventionエンコード、および object_syntax 修飾子は、常に MIB の種類と同じであり、既定値は常に NULL

MIB の種類 CIM バリアント型 cimtype 値
整数 VT_I4 sint32
OCTETSTRING VT_BSTR 文字列 する
OBJECTIDENTIFIER VT_BSTR 文字列 する
ヌル VT_NULL サポートされていません
IpAddress VT_BSTR 文字列 する
カウンター VT_I4 uint32 する
ゲージ VT_I4 uint32 する
TimeTicks VT_I4 uint32 する
オペーク VT_BSTR 文字列 する
NetworkAddress VT_BSTR 文字列 する

SYNTAX 句が明示的に、または名前付き型の割り当てを使用して NULL 参照する場合、プロバイダーは OBJECT-TYPE マクロを無視します。 次の表に、SYNTAX 句が SNMPv2 のプリミティブ型を明示的に参照する場合に発生するマッピングを示します。 textual_conventionエンコード、および object_syntax 修飾子は、常に MIB の種類と同じであり、既定値は常に NULL

MIB の種類 CIM バリアント型 cimtype 値
整数 VT_I4 sint32
OCTET 文字列 VT_BSTR 文字列 する
オブジェクト識別子 VT_BSTR 文字列 する
IpAddress VT_BSTR 文字列 する
Counter32 VT_I4 uint32 する
Gauge32 VT_I4 uint32 する
Unsigned32 VT_I4 uint32 する
Integer32 VT_I4 sint32
Counter64 VT_BSTR uint64 する
TimeTicks VT_I4 uint32 する
オペーク VT_BSTR 文字列 する

名前付き型

SNMP 名前付き型は CIM 定義型にマップされます。 SYNTAX 句が プリミティブ型の、テキスト規則 、または型の代入派生によって 制約された型 を参照する場合は、それらの型を使用して、適用されるマッピング プロシージャを決定します。

  • 型割り当て規則の派生によって、制約された型定義が発生した場合:

    • さらに派生することで、TEXTUAL-CONVENTION マクロに記載されているテキスト規則のいずれかが発生した場合は、制約付き型とテキスト規則のマッピング規則を適用します。
    • それ以外の場合は、いずれかのプリミティブ型テーブルに一覧表示されているプリミティブ型のいずれかが発生した場合は、プリミティブ型と制約付き型のマッピング規則を適用します。
  • TEXTUAL_CONVENTION マクロに一覧表示されているテキスト規則のいずれかが発生した場合は、テキスト規則のマッピング規則を適用します。

  • いずれかのプリミティブ型テーブルに一覧表示されているプリミティブ型のいずれかが発生した場合は、プリミティブ型のマッピング規則を適用します。

手記

上記のマッピングに準拠していないプロパティ型を含むクラスは無効です。 この場合、インスタンス取得関数の実行中にプロバイダーがクラス定義の取得を要求した場合、プロバイダーはエラーを返します。

制約付き型

制約付き型は、SMI ドキュメント RFC 1213 および RFC 1903 で定義されているサブタイピング メカニズムによって制約されているプリミティブ型、名前付き型、またはテキスト表記規則です。 サブタイピングが発生した場合は、サブタイプ値を指定するために追加の CIM 修飾子が必要です。 SYNTAX 句の名前付き型定義は、サブタイプの制約を含まない、object_syntax CIM プロパティ修飾子に逐語的にマップします。

サブタイプは、次のいずれかの形式に従うことができます。

  • 列挙型 INTEGER

    列挙 CIM プロパティ修飾子 列挙値を指定します。 この修飾子は、符号付き 32 ビット整数値のコンマ区切りリストを含む文字列として表されます。 次の表に、マッピングの種類を示します。 既定値は常に NULL です。

制約付き MIB の種類 CIM バリアント型 CIM 修飾子
列挙型 INTEGER VT_BSTR textual_convention: enumeratedinteger
エンコード: INTEGER
cimtype: string
  • ビット

    CIM プロパティ修飾子 ビット は、列挙値を指定します。 この修飾子は、符号付き 32 ビット整数値のコンマ区切りリストを含む文字列として表されます。 次の表に、マッピングの種類を示します。 既定値は常に NULL です。

制約付き MIB の種類 CIM バリアント型 CIM 修飾子
ビット VT_ARRAY |VT_BSTR textual_convention: ビット
エンコード : OCTETSTRING
cimtype: string
  • 可変長

    SYNTAX 句が、可変長 OCTET STRING または Opaque としてサブタイプ化されたプリミティブ型、名前付き型、またはテキスト形式の規則を参照する場合、CIM プロパティ修飾子 variable_length は、型定義に関連付けられている最小、最大、固定長の値を指定します。 この修飾子は、可変長の値が符号なし 32 ビット整数として表される、次の形式の文字列として実装されます。

    (((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
    
  • 固定長

    SYNTAX 句が、固定長 OCTET STRING または Opaque としてサブタイプ化されたプリミティブ型、名前付き型、またはテキスト規則を参照する場合、CIM プロパティ修飾子 fixed_length は固定長値を指定します。 この修飾子は、符号なし 32 ビット整数値として表されます。

  • 範囲

    SYNTAX 句が、範囲指定または固定値 INTEGER またはゲージとしてサブタイプ化されたプリミティブ型、名前付き型、またはテキスト形式の規則を参照する場合、CIM プロパティ修飾子 variable_value は、型定義に関連付けられている範囲および固定値を指定します。 この修飾子は、範囲と固定長の値が符号なし 32 ビット整数として表される、次の形式の文字列として実装されます。

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

コード例

次の例では、列挙型 INTEGER サブタイプについて説明します。

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

この例は次にマップされます。

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

次のコード例では、BITS サブタイプについて説明します。

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

次のコード例は、次のコードにマップされます。

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

次のコード例では、可変長サブタイプについて説明します。

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

この例は次にマップされます。

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

次の例では、固定長サブタイプについて説明します。

IPXADDRESS := OCTET STRING (SIZE (6))

この例は次にマップされます。

fixed_length(6)

次の例では、範囲サブタイプについて説明します。

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

この例は次にマップされます。

variable_value("10..20,8")