Klausa SINTAKS
Makro OBJECT-TYPE berisi klausa SINTAKS yang menentukan data dan jenis untuk objek MIB. Meskipun Penyedia SNMP mengamati aturan umum untuk memetakan klausa SINTAKS, penyedia juga mengikuti aturan khusus untuk beberapa jenis data.
Catatan
Untuk informasi selengkapnya tentang menginstal penyedia, lihat Menyiapkan Lingkungan SNMP WMI.
Aturan pemetaan berikut berlaku untuk semua jenis data yang dijelaskan dalam tabel di bawah ini:
- Representasi tekstual dari klausa SINTAKS memetakan ke pengualifikasi properti CIM textual_convention.
- Definisi jenis bernama dalam klausa SINTAKS memetakan ke object_syntax kualifikasi properti CIM. Pemetaan ini berbeda tergantung pada jenis data. Untuk informasi selengkapnya, lihat deskripsi pemetaan.
- Jenis SNMP yang digunakan saat mengodekan bingkai protokol SNMPv1 dan SNMPv2C memetakan ke pengodean kualifikasi properti CIM.
- Cimtype kualifikasi properti CIM berisi representasi tekstual yang memformat nilai protokol CIM yang mendasarinya.
Tabel berikut ini mencantumkan jenis data yang memiliki aturan khusus yang mengatur perilaku pemetaan penyedia.
Jenis data SNMP | Deskripsi |
---|---|
Jenis primitif | Salah satu jenis data dasar yang ditentukan dalam dokumen Struktur Informasi Manajemen (SMI) RFC 1213 dan RFC 1903. |
Konvensi tekstual | Definisi jenis yang dihasilkan melalui penggunaan eksplisit makro SNMPv2C TEXTUAL-CONVENTION atau dihasilkan melalui penggunaan jenis bernama. Konvensi tekstual menetapkan nama dan, dalam beberapa kasus, rentang nilai ke jenis data yang ada. |
Jenis bernama | Referensi bernama ke jenis primitif, konvensi tekstual, atau jenis yang dibatasi. |
Jenis yang dibatasi | Jenis primitif, jenis bernama, atau konvensi tekstual yang telah dibatasi oleh beberapa mekanisme subtipe yang ditentukan dalam dokumen SMI RFC 1213 dan RFC 1903. |
Jenis Primitif
Jenis primitif adalah salah satu jenis data dasar yang ditentukan dalam dokumen Struktur Informasi Manajemen (SMI) RFC 1213 dan RFC 1903. Peta jenis primitif SNMP ke jenis yang ditentukan CIM. Tabel berikut mencantumkan pemetaan yang terjadi ketika klausul SINTAKS secara eksplisit mengacu pada jenis primitif untuk SNMPv1. Kualifikasi textual_convention, pengodean, dan object_syntax selalu sama dengan jenis MIB dan nilai default selalu NULL.
Jenis MIB | Jenis varian CIM | nilai cimtype |
---|---|---|
INTEGER | VT_I4 | sint32 |
OKTETSTRING | VT_BSTR | string |
OBJECTIDENTIFIER | VT_BSTR | string |
NULL | VT_NULL | Tidak didukung |
IpAddress | VT_BSTR | string |
Penghitung | VT_I4 | uint32 |
Pengukur | VT_I4 | uint32 |
TimeTicks | VT_I4 | uint32 |
Buram | VT_BSTR | string |
NetworkAddress | VT_BSTR | string |
Penyedia mengabaikan makro OBJECT-TYPE ketika klausa SINTAKS mengacu pada NULL, baik secara eksplisit atau melalui penetapan jenis bernama. Tabel berikut mencantumkan pemetaan yang terjadi ketika klausa SINTAKS secara eksplisit mengacu pada jenis primitif untuk SNMPv2. Kualifikasi textual_convention, pengodean, dan object_syntax selalu sama dengan jenis MIB dan nilai default selalu NULL.
Jenis MIB | Jenis varian CIM | nilai cimtype |
---|---|---|
INTEGER | VT_I4 | sint32 |
STRING OKTET | VT_BSTR | string |
PENGIDENTIFIKASI OBJEK | VT_BSTR | string |
IpAddress | VT_BSTR | string |
Penghitung32 | VT_I4 | uint32 |
Pengukur32 | VT_I4 | uint32 |
Tidak ditandatangani32 | VT_I4 | uint32 |
Bilangan bulat32 | VT_I4 | sint32 |
Penghitung64 | VT_BSTR | uint64 |
TimeTicks | VT_I4 | uint32 |
Buram | VT_BSTR | string |
Jenis Bernama
Jenis nama SNMP dipetakan ke jenis yang ditentukan CIM. Ketika klausa SINTAKS mengacu pada jenis primitif, konvensi tekstual, atau jenis yang dibatasi melalui turunan penetapan jenis, gunakan jenis tersebut untuk menentukan prosedur pemetaan mana yang berlaku.
Jika, melalui derivasi aturan penetapan jenis, Anda menemukan definisi jenis yang dibatasi:
- Dan jika, melalui derivasi lebih lanjut, Anda menemukan salah satu konvensi tekstual yang tercantum dalam TEXTUAL-CONVENTION Macro, maka terapkan aturan pemetaan untuk jenis yang dibatasi dan konvensi tekstual.
- Jika tidak, jika Anda menemukan salah satu jenis primitif yang tercantum dalam tabel jenis primitif, terapkan aturan pemetaan untuk jenis primitif dan jenis yang dibatasi.
Jika Anda menemukan salah satu konvensi tekstual yang tercantum di TEXTUAL_CONVENTION Makro, terapkan aturan pemetaan untuk konvensi tekstual.
Jika Anda menemukan salah satu jenis primitif yang tercantum dalam tabel jenis primitif, terapkan aturan pemetaan untuk jenis primitif.
Catatan
Kelas yang berisi jenis properti yang tidak sesuai dengan pemetaan yang dijelaskan di atas tidak valid. Dalam hal ini, penyedia mengembalikan kesalahan jika dan ketika penyedia meminta pengambilan definisi kelas saat menjalankan fungsi pengambilan instans.
Tipe Yang Dibatasi
Jenis yang dibatasi adalah jenis primitif, jenis bernama, atau konvensi tekstual yang telah dibatasi oleh beberapa mekanisme subjenis yang ditentukan dalam dokumen SMI RFC 1213 dan RFC 1903. Saat subjenis terjadi, kualifikasi CIM tambahan diperlukan untuk menentukan nilai subjenis. Definisi jenis-bernama dalam klausa SINTAKS memetakan verbatim ke kualifikasi properti CIM object_syntax hingga, tetapi tidak termasuk batasan subjenis.
Subjenis dapat mengikuti salah satu format berikut:
BILANGAN BULAT Enumerasi
Enumerasi kualifikasi properti CIM menentukan nilai enumerasi. Kualifikasi ini direpresentasikan sebagai string yang berisi daftar nilai bilangan bulat 32-bit yang dipisahkan koma. Tabel berikut mencantumkan jenis pemetaan. Nilai default selalu NULL.
Jenis MIB yang dibatasi | Jenis varian CIM | Kualifikasi CIM |
---|---|---|
BILANGAN BULAT Enumerasi | VT_BSTR |
textual_convention: enumeratedinteger pengodean: BILANGAN BULAT cimtype: string |
BIT
Bit kualifikasi properti CIM menentukan nilai yang dijumlahkan. Kualifikasi ini direpresentasikan sebagai string yang berisi daftar nilai bilangan bulat 32-bit yang dipisahkan koma. Tabel berikut mencantumkan jenis pemetaan. Nilai default selalu NULL.
Jenis MIB yang dibatasi | Jenis varian CIM | Kualifikasi CIM |
---|---|---|
BIT | VT_ARRAY | VT_BSTR |
textual_convention: bit pengodean: OCTETSTRING cimtype: string |
Panjang variabel
Ketika klausul SINTAKS mengacu pada jenis primitif, jenis bernama, atau konvensi tekstual yang disubtipe sebagai STRING OCTET panjang variabel atau Buram, kualifikasi properti CIM variable_length menentukan nilai minimum, maksimum, dan panjang tetap yang terkait dengan definisi jenis. Kualifikasi ini diimplementasikan sebagai string dalam format berikut di mana nilai panjang variabel direpresentasikan sebagai bilangan bulat 32-bit yang tidak ditandatangani.
(((0.9) .. (0.9)) | (0.9))(, (((0.9) .. (0.9)) | (0.9)))*
Panjang tetap
Ketika klausa SINTAKS mengacu pada jenis primitif, jenis bernama, atau konvensi tekstual yang disubtipe sebagai STRING OCTET atau Buram panjang tetap, kualifikasi properti CIM fixed_length menentukan nilai panjang tetap. Kualifikasi ini direpresentasikan sebagai nilai bilangan bulat 32-bit yang tidak ditandatangani.
Rentang
Ketika klausa SINTAKS mengacu pada jenis primitif, jenis bernama, atau konvensi tekstual yang disubtipe sebagai BILANGAN BULAT atau Pengukur nilai tetap atau rentang, pengualifikasi properti CIM variable_value menentukan nilai rentang dan tetap yang terkait dengan definisi jenis. Kualifikasi ini diimplementasikan sebagai string dalam format berikut di mana rentang dan nilai panjang tetap direpresentasikan sebagai bilangan bulat 32-bit yang tidak ditandatangani.
(((0.9)..(0.9))|(0.9))(,(((0.9)..(0.9))|(0.9)))*
Contoh Kode
Contoh berikut menjelaskan subjenis INTEGER yang dijumlahkan.
Status := INTEGER {
up(1),
down(2),
testing(3)
}
Contoh ini memetakan ke:
enumeration("up(1),down(2),testing(3)")
Contoh kode berikut menjelaskan subjenis BITS.
Status := BITS {
up(1),
down(2),
testing(3)
}
Contoh kode berikut memetakan ke:
bits("up(1),down(2),testing(3)")
Contoh kode berikut menjelaskan subjenis panjang variabel.
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))
Contoh ini memetakan ke:
display_hint("*1x:/1x:"),
encoding("OCTETSTRING"),
textual_convention("OCTETSTRING"),
variable_length ("1,4..85")
Contoh berikut menjelaskan subjenis panjang tetap.
IPXADDRESS := OCTET STRING (SIZE (6))
Contoh ini memetakan ke:
fixed_length(6)
Contoh berikut menjelaskan subjenis rentang.
Status := INTEGER (10..20|8)
Contoh ini memetakan ke:
variable_value("10..20,8")