Next: MODULE-IDENTITY und OBJECT-IDENTITY
Up: Übersetzung von ASN.1-Makros in
Previous: Lexikalische Übersetzung, Namenskonventionen
Tabelle 3.1 zeigt die Umsetzung
von (einigen) ASN.1-Typen in IDL Datentypen. Sie werden in einem
File ,,ASN1Types.idl`` abgelegt und in
SNMP/SNMPv2-spezifischen .idl-Dateien (nicht notwendigerweise
explizit) eingebunden.
Tabelle 3.1:
Abbildung von ASN.1-Typen auf IDL-Typen
1|c|ASN.1-Typen |
1c|IDL-Typen |
NULL |
typedef octet ASN1_Null; |
BOOLEAN |
typedef boolean ASN1_Boolean; |
INTEGER |
typedef long ASN1_Integer; |
REAL |
typedef double ASN1_Real; |
ENUMERATED |
enum { item1, ... ,itemn }; |
BIT STRING |
typedef sequence<octet> ASN1_BitSring; |
OCTET STRING |
typedef sequence<octet> ASN1_OctetSring; |
STRING |
typedef sequence<octet> ... ; |
|
typedef string ... ; |
|
typedef sequence<long> ... ; |
|
typedef sequence<unsigned short> ... ; |
OBJECT IDENTIFIER |
typedef string ASN1_Objectidentifier; |
CHOICE |
union/switch |
SET,SEQUENCE |
struct |
SET,SEQUENCE OF type |
typedef sequence<type> ... ; |
Der Grund, warum für ASN.1 STRING mehrere IDL-Typen definiert
wurden, sind die verschiedenen Varianten dieses Typs. Ein
ASN.1 STRING kann eine einfache Zeichenkette oder eine
Folge eines bestimmten Datentyps (z.B. ein 32-Bit-Wert) sein,
wofür jeweils ein entsprechender IDL-Datentyp definiert werden muß.
Aus der obigen Liste der ASN.1-Datentypen sind in der Internet-SMI
nur die Typen
NULL, INTEGER, OCTET STRING und OBJECT IDENTIFIER sowie
die Datentypen SEQUENCE, SEQUENCE OF zugelassen.
Sie werden verwendet, um SNMP-anwendungsspezifische
Datentypen (Zähler, IP-Adresse ...) zu definieren (s. [MR90]).
Für diese gilt
die Umsetzungstabelle 3.2.
Tabelle 3.2:
SNMP-Typen in IDL
1|c|SNMP |
1c|IDL |
IpAddress |
sequence<octet, 4> IpAddressType; |
Counter |
typedef unsigned short CounterType; |
Gauge |
typedef unsigned short GaugeType; |
TimeTicks |
typedef unsigned short TimeTicksType; |
Opaque |
sequence<octet> OpaqueType; |
Bei SNMPv2 kommen noch die in Tabelle 3.3
aufgeführten ASN.1-Typen dazu (oder werden neu definiert,
s. [CMRW96c], SNMPv2-SMI).
Tabelle 3.3:
SNMPv2-Typen in IDL
1|c|SNMPv2 |
1c|IDL |
Integer32 |
typedef long Integer32Type; |
Counter32 |
typedef unsigned long Counter32Type; |
Gauge32 |
typedef unsigned long Gauge32Type; |
TimeTicks |
typedef unsigned long TimeTicksType; |
Counter64 |
typedef long Counter64Type; |
Unsigned32 |
typedef unsigned long Unsigned32Type; |
Next: MODULE-IDENTITY und OBJECT-IDENTITY
Up: Übersetzung von ASN.1-Makros in
Previous: Lexikalische Übersetzung, Namenskonventionen
Copyright Munich Network Management Team