Bagikan melalui


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")