next up previous contents
Next: MODULE-IDENTITY und OBJECT-IDENTITY Up: Übersetzung von ASN.1-Makros in Previous: Lexikalische Übersetzung, Namenskonventionen

Umsetzung einfacher Datentypen

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 up previous contents
Next: MODULE-IDENTITY und OBJECT-IDENTITY Up: Übersetzung von ASN.1-Makros in Previous: Lexikalische Übersetzung, Namenskonventionen
Copyright Munich Network Management Team