next up previous contents
Next: Abbildung der Managementobjekte Up: Übersetzung von ASN.1-Makros in Previous: Umsetzung einfacher Datentypen

MODULE-IDENTITY und OBJECT-IDENTITY

Beim Internet-Management werden die Managementobjekte über den Internet-Registrierungsbaum identifiziert und benannt. Dieser Baum besteht aus Strukturierungsknoten und Informationsknoten. Letztere sind die Blätter des Baumes, in denen Agenten (managementrelevante) Information abspeichern können[*]. Ein SNMP(v2)-Informationsmodul enthält die Beschreibung (in ASN.1 Notation) eines Teilbaumes der Internet-MIB, mit Strukturierungs- und/oder Informationsknoten. Beispiel für ein solches Modul ist die MIB-II ([MR91]):

RFC1213-MIB DEFINITIONS ::= BEGIN
IMPORTS
        mgmt, NetworkAddress, IpAddress, Counter, Gauge,
                TimeTicks
            FROM RFC1155-SMI
        OBJECT-TYPE
                FROM RFC-1212;
mib-2      OBJECT IDENTIFIER ::= { mgmt 1 }

-- textual conventions
DisplayString ::=
    OCTET STRING
PhysAddress ::=
    OCTET STRING
-- groups in MIB-II

system       OBJECT IDENTIFIER ::= { mib-2 1 }
interfaces   OBJECT IDENTIFIER ::= { mib-2 2 }
at           OBJECT IDENTIFIER ::= { mib-2 3 }
ip           OBJECT IDENTIFIER ::= { mib-2 4 }
icmp         OBJECT IDENTIFIER ::= { mib-2 5 }
tcp          OBJECT IDENTIFIER ::= { mib-2 6 }
udp          OBJECT IDENTIFIER ::= { mib-2 7 }
egp          OBJECT IDENTIFIER ::= { mib-2 8 }
transmission OBJECT IDENTIFIER ::= { mib-2 10 }
snmp         OBJECT IDENTIFIER ::= { mib-2 11 }
          
-- Formale Beschreibung der einzelnen Gruppen

END
Jedes solche Modul, wird auf ein IDL-Modul mit gleichem Identifikator (im Beispiel RFC1213-MIB) abgebildet. Die dazugehörige Datei wird nach demselben Modul und dem Suffix ,,.idl`` benannt. Diese Ausgabedatei -- in sie werden alle den ASN.1-Makros des Moduls entsprechenden IDL-Definitionen geschrieben -- heißt bei obigem Beispiel ,,rfc1213.idl`` und sieht (für obigen Auszug) folgendermaßen aus[*]:

// rfc1213.idl  
#ifndef RFC1213_MIB_idl 
#define RFC1213_MIB_idl 
#include ``SNMPMgmt.idl''
module RFC1213_MIB { 
#include ``rfc1155.idl'' 
typedef RFC1155_SMI::TimeTicksType TimeTicksType; 
typedef RFC1155_SMI::GaugeType GaugeType; 
typedef RFC1155_SMI::CounterType CounterType; 
typedef RFC1155_SMI::IpAddressType IpAddressType; 
typedef RFC1155_SMI::NetworkAddressType NetworkAddressType; 
#define mgmt RFC1155_SMI::mgmt; 
const ASN1_ObjectIdentifier mib_2 = ``mgmt.1'';
const ASN1_ObjectIdentifier system = ``mib_2.1'';
const ASN1_ObjectIdentifier interfaces = ``mib_2.2'';
const ASN1_ObjectIdentifier at = ``mib_2.3'';
const ASN1_ObjectIdentifier ip = ``mib_2.4'';
const ASN1_ObjectIdentifier icmp = ``mib_2.5'';
const ASN1_ObjectIdentifier tcp = ``mib_2.6'';
const ASN1_ObjectIdentifier udp = ``mib_2.7'';
const ASN1_ObjectIdentifier egp = ``mib_2.8'';
const ASN1_ObjectIdentifier transmission = ``mib_2.10'';
const ASN1_ObjectIdentifier snmp = ``mib_2.11'';
// IDL-Beschreibung der Gruppen 
} 
#endif 
Wichtig ist, daß die Objektidentifikatoren als konstante Strings übernommen werden. Die Objektidentifikatoren werden für die Adressierung der Managed Objects in den SNMP(v2)-PDUs benötigt.


next up previous contents
Next: Abbildung der Managementobjekte Up: Übersetzung von ASN.1-Makros in Previous: Umsetzung einfacher Datentypen
Copyright Munich Network Management Team