SYNTAX 절
OBJECT-TYPE 매크로에는 MIB 개체의 데이터와 형식을 정의하는 SYNTAX 절이 포함되어 있습니다. SNMP 공급자는 SYNTAX 절 매핑에 대한 일반적인 규칙을 준수하지만 공급자는 여러 데이터 형식과 관련된 규칙도 따릅니다.
참고
공급자 설치에 관한 자세한 내용은 WMI SNMP 환경 설정을 참조하세요.
다음 매핑 규칙은 아래 표에 설명된 모든 데이터 형식에 적용됩니다.
- SYNTAX 절의 텍스트 표현은 CIM 속성 한정자 textual_convention에 매핑됩니다.
- SYNTAX 절의 명명된 유형 정의는 CIM 속성 한정자 object_syntax에 매핑됩니다. 이 매핑은 데이터 형식에 따라 다릅니다. 자세한 내용은 매핑 설명을 참조하세요.
- SNMPv1 및 SNMPv2C 프로토콜 프레임을 인코딩할 때 사용되는 SNMP 형식은 CIM 속성 한정자 encoding에 매핑됩니다.
- 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, encoding, 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 |
불투명 | VT_BSTR | string |
NetworkAddress | VT_BSTR | string |
SYNTAX 절이 명시적으로 또는 명명된 형식 할당을 통해 NULL을 참조할 경우 공급자는 OBJECT-TYPE 매크로를 무시합니다. 다음 표에는 SYNTAX 절이 SNMPv2에 대한 기본 형식을 명시적으로 참조할 때 발생하는 매핑이 명시되어 있습니다. textual_convention, encoding, object_syntax 한정자는 항상 MIB 유형과 동일하며 기본값은 항상 NULL입니다.
MIB 유형 | CIM 변형 유형 | cimtype 값 |
---|---|---|
INTEGER | VT_I4 | sint32 |
8진수 문자열 | VT_BSTR | string |
개체 식별자 | 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 |
불투명 | VT_BSTR | string |
명명된 형식
SNMP 명명된 형식은 CIM 정의 형식에 매핑됩니다. SYNTAX 절이 형식 할당 파생을 통해 기본 형식, 텍스트 규칙 또는 제한된 형식을 참조하는 경우 해당 형식을 사용하여 적용할 매핑 프로시저를 결정합니다.
형식 할당 규칙의 파생을 통해 제한된 형식 정의가 발생하는 경우:
- 추가 파생을 통해 TEXTUAL-CONVENTION 매크로에 나열된 텍스트 규칙 중 하나가 발생하는 경우 제한된 형식 및 텍스트 규칙에 대한 매핑 규칙이 적용됩니다.
- 또는 기본 형식 테이블에 나열된 기본 형식 중 하나가 발생하면 기본 형식 및 제한된 형식에 대한 매핑 규칙이 적용됩니다.
TEXTUAL_CONVENTION 매크로에 나열된 텍스트 규칙 중 하나가 발생하면 텍스트 규칙에 대한 매핑 규칙이 적용됩니다.
기본 형식 테이블에 나열된 기본 형식 중 하나가 발생하는 경우 기본 형식에 대한 매핑 규칙이 적용됩니다.
참고
위에서 설명한 매핑을 준수하지 않는 속성 형식이 포함된 클래스는 유효하지 않습니다. 이 경우 공급자가 인스턴스 검색 함수를 실행하는 동안 클래스 정의의 검색을 요청하면 공급자는 오류를 반환합니다.
제한된 형식
제한된 형식은 기본 형식, 명명된 형식 또는 SMI 문서 RFC 1213 및 RFC 1903에 정의된 일부 하위 형식 메커니즘에 의해 제한된 텍스트 규칙입니다. 하위 형식 지정이 발생하면 하위 형식 값을 지정하는 데 추가 CIM 한정자가 필요합니다. SYNTAX 절의 명명된 형식 정의는 하위 형식의 제약 조건을 포함하지 않고 CIM 속성 한정자 object_syntax에 그대로 매핑됩니다.
하위 형식은 다음 형식을 따를 수 있습니다.
열거형 INTEGER
CIM 속성 한정자 enumeration은 열거된 값을 지정합니다. 이 한정자는 서명된 32비트 정수 값의 쉼표로 구분된 목록을 포함하는 문자열로 표시됩니다. 다음 표에서는 매핑 유형을 나열합니다. 기본값은 항상 NULL입니다.
제한된 MIB 유형 | CIM 변형 유형 | CIM 한정자 |
---|---|---|
열거형 INTEGER | VT_BSTR |
textual_convention: enumeratedinteger encoding: INTEGER cimtype: string |
BITS
CIM 속성 한정자 bits는 열거된 값을 지정합니다. 이 한정자는 서명된 32비트 정수 값의 쉼표로 구분된 목록을 포함하는 문자열로 표시됩니다. 다음 표에서는 매핑 유형을 나열합니다. 기본값은 항상 NULL입니다.
제한된 MIB 유형 | CIM 변형 유형 | CIM 한정자 |
---|---|---|
BITS | VT_ARRAY | VT_BSTR |
textual_convention: bits encoding: OCTETSTRING cimtype: string |
가변 길이
SYNTAX 절이 하위 형식이 변수 길이 OCTET STRING 또는 불투명인 기본 형식, 명명된 형식 또는 텍스트 규칙을 참조하는 경우 CIM 속성 한정자 variable_length가 형식 정의와 연결된 최소, 최대 및 고정 길이 값을 지정합니다. 이 한정자는 변수 길이 값이 부호 없는 32비트 정수로 표시되는 다음 형식의 문자열로 구현됩니다.
(((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
고정 길이
SYNTAX 절에서 하위 형식이 고정 길이 OCTET STRING 또는 불투명인 기본 형식, 명명된 형식 또는 텍스트 규칙을 참조하는 경우 CIM 속성 한정자 fixed_length가 고정 길이 값을 지정합니다. 이 한정자는 부호 없는 32비트 정수 값으로 표현됩니다.
범위
SYNTAX 절에서 하위 형식이 범위가 지정되거나 고정 값 INTEGER 또는 Gauge인 기본 형식, 명명된 형식 또는 텍스트 규칙을 참조하는 경우 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")