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(관리 정보 구조)에 정의된 기본 데이터 형식 중 하나는 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 값 |
---|---|---|
정수 | 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 STRING | 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 또는 불투명으로 하위 형식인 기본 형식, 명명된 형식 또는 텍스트 규칙을 참조하는 경우 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 또는 계기로 하위 형식인 기본 형식, 명명된 형식 또는 텍스트 규칙을 참조하는 경우 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")