Klausul SINTAKS
Makro OBJECT-TYPE berisi klausa SINTAKS yang menentukan data dan jenis untuk objek MIB. Meskipun Penyedia SNMP mengamati aturan umum untuk memetakan klausul SINTAKS, penyedia juga mengikuti aturan khusus untuk beberapa jenis data.
Nota
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 kualifikasi properti CIM textual_convention.
- Definisi jenis bernama dalam klausa SINTAKS memetakan ke kualifikasi properti CIM object_syntax. 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 kualifikasi properti CIM pengodean.
- Kualifikasi properti CIM cimtype berisi representasi tekstual yang memformat nilai protokol CIM yang mendasarinya.
Tabel berikut 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 SNMPv2C TEXTUAL-CONVENTION makro 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. textual_convention, pengodean, dan kualifikasi object_syntax selalu sama dengan jenis MIB dan nilai default selalu null.
Jenis MIB | Jenis varian CIM | nilai cimtype |
---|---|---|
INTEGER | VT_I4 | sint32 |
OCTETSTRING | VT_BSTR | string |
OBJECTIDENTIFIER | VT_BSTR | string |
NOL | VT_NULL | Tidak didukung |
IpAddress | VT_BSTR | string |
Konter | VT_I4 | uint32 |
Gauge | 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 klausul SINTAKS secara eksplisit mengacu pada jenis primitif untuk SNMPv2. textual_convention, pengodean, dan kualifikasi 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 |
Gauge32 | 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 |
Tipe Bernama
Peta jenis bernama SNMP ke jenis yang ditentukan CIM. Ketika klausul 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 Makro, 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.
Nota
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. Ketika 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
Kualifikasi properti CIM enumerasi 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
Kualifikasi properti CIM bit 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 |
---|---|---|
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 dengan 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 diwakili 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 dengan panjang tetap, kualifikasi properti CIM fixed_length menentukan nilai panjang tetap. Kualifikasi ini dinyatakan sebagai nilai bilangan bulat 32-bit yang tidak ditandatangani.
Lingkup
Ketika klausul SINTAKS mengacu pada jenis primitif, jenis bernama, atau konvensi tekstual yang disubtipe sebagai BILANGAN BULAT atau Pengukur nilai tetap atau rentang, kualifikasi 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 diwakili 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")