Bagikan melalui


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