SYNTAX 子句
OBJECT-TYPE宏包含的 SYNTAX 子句會定義 MIB 物件的資料和類型。 雖然 SNMP 提供者觀察到對應 SYNTAX 子句的一般規則,但提供者也會遵循數種資料類型特有的規則。
注意
如需安裝提供者的詳細資訊,請參閱 設定 WMI SNMP 環境。
下列對應規則適用于下表所述的所有資料類型:
- SYNTAX 子句的文字表示會對應至 CIM 屬性限定詞 textual_convention。
- SYNTAX 子句中的具名類型定義會對應至 CIM 屬性限定詞 object_syntax。 此對應會根據資料類型而有所不同。 如需詳細資訊,請參閱對應描述。
- 編碼 SNMPv1 和 SNMPv2C 通訊協定框架時所使用的 SNMP 類型會對應至 CIM 屬性限定詞 編碼。
- CIM 屬性限定詞 cimtype 包含格式化基礎 CIM 通訊協定值的文字標記法。
下表列出具有管理提供者對應行為之特定規則的資料類型。
SNMP 資料類型 | 描述 |
---|---|
基本型別 | 管理資訊結構中所定義的其中一種基本資料類型 (SMI) 檔 RFC 1213 和 RFC 1903。 |
文字慣例 | 透過明確使用 SNMPv2C TEXTUAL-CONVENTION 宏所產生的類型定義,或使用具名類型產生。 文字慣例會指派名稱,在某些情況下,會將值範圍指派給現有的資料類型。 |
具名類型 | 基本類型、文字慣例或限制類型的具名參考。 |
限制類型 | 受 SMI 檔 RFC 1213 和 RFC 1903 中定義的一些子樣式機制所限制的基本類型、具名類型或文字慣例。 |
基本類型
基本類型是管理資訊結構中所定義的其中一種基本資料類型, (SMI) 檔 RFC 1213 和 RFC 1903。 SNMP 基本類型會對應至 CIM 定義型別。 下表列出當 SYNTAX 子句明確參考 SNMPv1 的基本類型時所發生的對應。 textual_convention、編碼和object_syntax限定詞一律與 MIB 類型相同,預設值一律為Null。
MIB 類型 | CIM 變體類型 | cimtype 值 |
---|---|---|
INTEGER | VT_I4 | sint32 |
OCTETSTRING | VT_BSTR | string |
OBJECTIDENTIFIER | VT_BSTR | string |
NULL | VT_NULL | 不支援 |
IpAddress | VT_BSTR | string |
計數器 | VT_I4 | uint32 |
量測計 | VT_I4 | uint32 |
TimeTicks | VT_I4 | uint32 |
Opaque | VT_BSTR | string |
NetworkAddress | VT_BSTR | string |
當 SYNTAX 子句明確或透過具名類型指派參考 Null時,提供者會忽略 OBJECT-TYPE 宏。 下表列出當 SYNTAX 子句明確參考 SNMPv2 的基本類型時所發生的對應。 textual_convention、編碼和object_syntax限定詞一律與 MIB 類型相同,預設值一律為Null。
MIB 類型 | CIM 變體類型 | cimtype 值 |
---|---|---|
INTEGER | VT_I4 | sint32 |
OCTET STRING | VT_BSTR | string |
物件識別碼 | VT_BSTR | string |
IpAddress | VT_BSTR | string |
Counter32 | VT_I4 | uint32 |
量測計32 | VT_I4 | uint32 |
Unsigned32 | VT_I4 | uint32 |
Integer32 | VT_I4 | sint32 |
Counter64 | VT_BSTR | uint64 |
TimeTicks | VT_I4 | uint32 |
Opaque | VT_BSTR | string |
具名類型
SNMP 具名類型對應至 CIM 定義的類型。 當 SYNTAX 子句透過型別指派衍生參考 基本類型、 文字慣例或 限制型 別時,請使用這些類型來判斷套用的對應程式。
如果透過型別指派規則的衍生,您會遇到受限制的類型定義:
- 如果透過進一步的衍生,您遇到 TEXTUAL-CONVENTION 宏中列出的其中一個文字慣例,則套用限制類型和文字慣例的對應規則。
- 否則,如果您遇到任一基本類型資料表中列出的其中一個基本類型,請套用基本型別和限制型別的對應規則。
如果您遇到 TEXTUAL_CONVENTION宏中列出的其中一個文字慣例,請套用文字慣例的對應規則。
如果您遇到任一基本類型資料表中列出的其中一個基本類型,請針對基本類型套用對應規則。
注意
包含不符合上述對應之屬性類型的類別無效。 在此情況下,如果提供者在執行實例擷取函式時要求擷取類別定義,則提供者會傳回錯誤。
限制類型
限制類型是基本類型、具名類型或文字慣例,受到 SMI 檔 RFC 1213 和 RFC 1903 中定義的一些子樣式機制所限制。 發生子樣式時,需要額外的 CIM 限定詞才能指定子類型值。 SYNTAX 子句中的具名類型定義會將逐字對應至 CIM 屬性限定詞 , object_syntax最多,但不包括子類型的條件約束。
子類型可能遵循下列任何格式:
列舉的 INTEGER
CIM 屬性限定詞 列舉 會指定列舉值。 這個限定詞會以字串表示,其中包含帶正負號 32 位整數值的逗號分隔清單。 下表列出對應類型。 預設值一律為 Null。
限制 MIB 類型 | CIM 變體類型 | CIM 限定詞 |
---|---|---|
列舉的 INTEGER | VT_BSTR |
textual_convention:enumeratedinteger 編碼:INTEGER cimtype: string |
BITS
CIM 屬性限定詞 位 會指定列舉值。 這個限定詞會以字串表示,其中包含帶正負號 32 位整數值的逗號分隔清單。 下表列出對應類型。 預設值一律為 Null。
限制 MIB 類型 | CIM 變體類型 | CIM 限定詞 |
---|---|---|
BITS | VT_ARRAY |VT_BSTR |
textual_convention:位 編碼:OCTETSTRING cimtype: string |
Variable-length
當 SYNTAX 子句參考基本類型、具名型別或文字慣例時,子類型為可變長度的 OCTET STRING 或 Opaque 時,CIM 屬性限定詞 variable_length 會指定與類型定義相關聯的最小、最大值和固定長度值。 此限定詞會以下列格式實作為字串,其中可變長度值會以不帶正負號的 32 位整數表示。
(((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
Fixed-length
當 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")