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