-
FELD DER ERFINDUNG
-
Die
Erfindung betrifft die Meldung von Fehlerinformation. Präziser betrifft
diese Erfindung die Meldung von sehr speziellen Fehlerinformationen,
wenn ein Management-Protokoll benutzt wird. Insbesondere betrifft
die Erfindung ein Verfahren und eine Vorrichtung gemäß den Präambeln von
Anspruch 1 und 12.
-
HINTERGRUND
DER ERFINDUNG
-
Wenn
ein Konfigurationsbefehl fehlschlägt, sendet das SNMP-Protokoll
einen Fehlercode zurück zum
Benutzer. Ein Beispiel für
einen Konfigurationsbefehl ist die Einstellung einer Leitungs-Datenrate
eines Peripheriegerätes.
Ein Fehler tritt auf, wenn das Peripheriegerät die Leitungs-Datenrate nicht
unterstützt.
SNMP erlaubt jedoch nur eine begrenzte Anzahl von Fehlercodes. Folglich
enthält
der Code oft nicht genug Information, damit der Bediener genau weiß, was der
Fehler ist. Spezieller ist im Standard Agent X (RFC 2741) das Fehler-Status-Feld
einer Antwort-Nachricht auf einige AgentX-spezifische Fehlercodes (nicht auf die
Architektur 7770 RCP anwendbar) plus die 18 in RFC 1905 definierten SNMP-Fehler-Status-Werte beschränkt. Das
bedeutet, dass die Anwendungen nur einen der 18 von SNMP definierten
Fehlercodes melden können.
In der Mehrzahl der Fehlersituationen sind speziellere Informationen über den
Fehler bekannt. Wenn das Standard-SNMP-Protokoll benutzt wird, kann diese zusätzliche
spezielle Information nicht zum Benutzer zurückgegeben werden. Folglich
kann es sein, dass der Bediener nicht in der Lage ist, exakt festzustellen, warum
die Management-Operation fehlgeschlagen ist. Somit wird er nicht
in der Lage sein, den Fehler zu beseitigen.
-
In
ANONYM: "Error messages
with unique identifiers";
RESEARCH DISCLOSURE, Nr. 446, 1. Juni 2001 (2001-06-01), Seite 1091,
XP002247970 Havant UK, Artikel Nr. 446195, wird eine eindeutige Fehler-Kennung
offen gelegt, die mit jeder Fehlermeldung zum Benutzer weitergegeben
wird. Durch Benutzung der Fehler-Kennung kann die entsprechende
Fehlermeldung in detaillierteren Fehlerprotokollen gefunden werden.
Die eindeutige Fehler-Kennung ist jedoch nicht kompatibel zum SNMP-Protokoll.
-
Ein
weiterer bisheriger Stand der Technik ist aus EP-A-1 154 601 bekannt.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist eine Aufgabe der vorliegenden Erfindung, eine detailliertere
Fehlermeldung in Verbindung mit dem SNMP-Protokoll bereitzustellen.
-
Die
Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und durch eine
Vorrichtung gemäß Anspruch
12 gelöst.
-
In
einer bevorzugten Ausführung
ist das Fehler-Status-Feld
ein 32-Bit-Feld, worin die unteren Bits 5 Bits und die oberen Bits
27 Bits sind.
-
In
einer anderen bevorzugten Ausführung
ist das Fehler-Status-Feld
ein 16-Bit-Feld, worin die unteren Bits 5 Bits und die oberen Bits
11 Bits sind.
-
In
noch einer anderen bevorzugten Ausführung umfasst der Fehlercode
drei Abschnitte, worin die 3 Abschnitte obere Bits zur Erkennung
einer Gruppe von Fehlercodes, mittlere Bits zur Erkennung eines
Codes innerhalb eines Bereichs der Gruppe von Fehlercodes und für den SNMP-Fehlercode
reservierte untere Bits umfasst.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
eine SNMP-Master-Agent-Subagent-Architektur.
-
2 ist
ein Flussdiagramm, das die Schritte zeigt, die durchgeführt werden,
wenn zusätzliche
Informationen im AgentX-Fehler-Status-Feld untergebracht werden.
-
3 ist
ein Flussdiagramm, das die Schritte zeigt, die durchgeführt werden,
wenn die Fehlercodes im AgentX-Fehler-Status-Feld
gesendet und verarbeitet werden.
-
4 ist
ein Logik-Blockdiagramm, das einen Master-Agent zeigt, der einen kompletten Fehlercode
von einem AgentX-Fehler-Status-Feld
zum CLI oder Web-Handler weitergibt, der dann eine geeignete Fehlermeldung
aus einer Fehler-Datenbank abruft.
-
5(a) ist eine Zeichnung eines intern definierten
Fehlercodes aus einer 16-Bit-Zahl mit 5 unteren Bits, die für durch
SNMP definierte Fehlercodes reserviert sind, und 11 oberen Bits,
die zur Speicherung eines internen Teils der zusätzlichen Fehler-Information
benutzt werden.
-
5(b) ist eine Zeichnung eines intern definierten
Fehlercodes aus einer 16-Bit-Zahl, bei dem das 16-Bit-Feld auch
in 3 Abschnitte unterteilt sein kann.
-
6 zeigt
Werte, die in RFC 1905 definiert sind und für den SNMP-spezifischen Teil
des Fehlercodes benutzt werden.
-
7 zeigt
die Schritte, die im Programmcode der Programmiersprache C durchgeführt werden,
um die zusätzliche
Fehler-Information, oder die Bits 5–15 der Fehlercodes zuzuweisen.
-
8 enthält Beispiele
für spezielle
Fehlermeldungen.
-
9 zeigt,
wie die Web- und CLI-Schnittstellen-Komponente oder der Handler Befehle
in der Master-Agent-Subagent-Architektur
sendet.
-
10 ist
ein Flussdiagramm, das die Schritte offen legt, die durchgeführt werden,
wenn die Web- und CLI-Schnittstellen-Komponente
oder der Handler Befehle in der Master-Agent-Subagent-Architektur
sendet.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Das
Standard-AgentX-Fehler-Status-Feld einer Antwort-Nachricht ist auf einige AgentX-spezifische
Fehlercodes (ERR) plus die 18 Standard-SNMP-Fehler-Status-Werte
(ERRS) begrenzt. Dies bedeutet, dass normalerweise sehr wenig Information
zur Verfügung
steht, um einen Bediener an einer Web- oder CLI-Schnittstelle dabei zu unterstützen, ein
Problem zu beseitigen, wie z.B. einen Konfigurations-Fehler.
-
Die
vorliegende Erfindung umfasst eine Erweiterung des AgentX-Protokolls
und der SNMP-Master-Agent-(MA)-Verarbeitung für eine Multi-Schnittstellen-Management-Architektur,
die modelliert wird, wobei SNMP intern verwendet wird. Die Erweiterung
erlaubt es, Information zurück
an CLI- und WEB-Bediener
zu melden. In einer bevorzugten Ausführung wird diese Erweiterung
in einem 7770 RCP-Router eingesetzt. Der vom SNMP-Master-Agent (MA)
zur Umsetzung von Nachrichten zwischen Protokollen benutzte Code
ist gewissermaßen ein
Filter.
-
AgentX
-
Ein
Agent überwacht
und sammelt für
jedes Netzwerk-Element
Betriebsdaten und erkennt Ausnahme-Ereignisse. Es kann einen Agenten
für alles geben,
oder es kann einen Master-Agenten
(MA) und einen Subagent (SA) für
jede laufende Haupt-Software-Anwendung
geben. Der Master-Agent (MA) kommuniziert mit den Subagents (SA) über ein
Protokoll, das AgentX genannt wird.
-
Standard-SNMP/AgentX-Subagent-Architektur
-
Viele
Netzwerk-Einrichtungen, wie z.B. der in der ebenfalls eingereichten
US-Patentanmeldung, SNMP Trap and Inform Shaping Mechanism, US 2003/0195922
A1, eingereicht am 10. April 2002, Seite 3, Zeile 26 bis Seite 5,
Zeile 25 und in den 1–3 beschriebene
Router, verwenden intern für
die Verarbeitung von Management-Operationen eine SNMP-Master-Agent-Subagent-(MA-SA)-Architektur.
Der Master-Agent (MA) empfängt SNMP-Nachrichten
von externen SNMP-Managern und verteilt sie intern als AgentX-Nachrichten
an mehrere Subagents (SA) im Router (R1). Die Subagents (SA) leiten
die Nachrichten zu entsprechenden Anwendungen. Die Subagents (SA)
geben Antworten von den Anwendungen zurück an den Master-Agent (MA).
Jeder Management-Subagent (SA) kann mehrere Anwendungen bedienen.
Typischerweise bedient ein Subagent (SA) einen Typ von Anwendung
(z.B. IP-Weiterleitung) auf allen Karten. Im 7770 RCP-Router (der
in der eingereichten Patentanmeldung beschrieben wird), kann der
Subagent (SA) bis zu 30 TLKs bedienen, obwohl die vorliegende Erfindung
auf Systeme angewendet werden kann, in denen jeder Subagent (SA)
sogar noch größere Anzahlen
bedienen kann.
-
1 zeigt
eine SNMP-Master-Agent-Subagent-(MA-SA)-Architektur. In 1 werden
Konfigurations-Befehle (CMD) als AgentX-Nachrichten an die Subagents
(SA) gesendet, die interne Anwendungen unterstützen. Daten oder Fehlermeldungen
von internen Anwendungen werden als AgentX-Antwort-Nachrichten (RESP)
zum Master-Agent (MA) gesendet. Siehe RFC 2741, Daniele, Januar
2000, Agent Extensibility (AgentX) Protocol Version 1. Dann werden
sie in SNMP-Antwort-Pakete (PKT) umgesetzt, die entweder Daten oder
SNMP-definierte Fehler-Status-Werte
(ERRS) enthalten. Siehe RFC 1905, Case, Januar 1996, Protocol Operations for
Version 2 of the Simple Network Management Protocol (SNMPv2).
-
Multi-Protokoll/AgentX-Subagent-Architektur
-
Die
7770 RCP-Master-Agent-Subagent-(MA-SA)-Architektur der vorliegenden
Erfindung enthält
auch eine Verbindung zu einer Web-Schnittstelle und eine Kommandozeilen-Schnittstelle
(Command Line Interface, CLI). Die Web-Befehle und die CLI-Befehle werden in AgentX-Nachrichten
umgesetzt. Sie benutzen dieselbe interne Verarbeitung wie die äquivalenten SNMP-Befehle.
-
BEVORZUGTE
AUSFÜHRUNG
-
Die
Lösung
umfasst die Platzierung zusätzlicher
Information im AgentX-Fehler-Status-Feld (STSF). Siehe 2.
In einer bevorzugten Ausführung
ist das AgentX-Fehler-Status-Feld
(STSF) ein 32-Bit-Feld. Die unteren 5 Bits (LB) sind für die in SNMP
definierten Fehlercodes (ERR) reserviert, die von Natur aus sehr
allgemein sind und daher eine begrenzte Information übermitteln.
Zusätzliche
Fehler-Information oder spezielle Fehlercodes (ERR) werden in den
oberen 27 Bits (UB) untergebracht. Als Folge davon können Tausende
sehr spezieller Fehlercodes (ERR) durch das AgentX-Paket an den
Bediener übermittelt
werden, wodurch der Bediener exakt weiß, was der Fehler ist. Allgemeine
Fehlercodes (ERR) können
von allen Subagents (SA) und Anwendungen benutzt werden. Spezielle
Fehlercodes (ERR) (und die entsprechenden Nachrichten) werden in
Gruppen angeordnet, die Bereiche pro Subagent (SA) haben. Die CLI-
und Web-Logik greift auf diese Fehlermeldungen über die Programmierungs-Schnittstelle
(API) der MapErrorCode-Anwendung
zu, die später
diskutiert wird und deren Eingabe der Wert des in eine Text-Zeichenkette
umzusetzenden Fehlercodes (ERR) ist.
-
Wie
oben angeben, sind die unteren 5 Bits (LB), die Bits 0–4, reserviert
für von
SNMP definierte Fehlercodes (ERR) (100). Die nächsten 11
Bits, die oberen Bits (UB), die Bits 5-15, werden dazu benutzt, einen internen
Teil der zusätzlichen
Fehler-Information zu speichern, oder anders ausgedrückt, zusätzliche
Fehlermeldungen über
die in RFC 1905 definierten 18 SNMP-Fehler-Status-Werte (ERRS) hinaus
zu speichern (110). In einer bevorzugten Ausführung können 500
zusätzliche
Fehlermeldungen gespeichert werden.
-
Jedem
Subagent (SA) oder jeder Gruppe von Subagents (SA) wird ein Bereich
von Werten zugeordnet, um sicherzustellen, dass jeder eindeutig erkannt
wird (120). Die Werte des Nachrichten-Codes und der Text
der Nachricht werden in globalen Dateien definiert. Hierdurch wird
die Übereinstimmung
sichergestellt. Zusätzlich
dazu können
sie auch dazu verwendet werden, eine Übersetzung in andere Sprachen
oder eine Kundenanpassung bereitzustellen.
-
Die
Fehlercodes (ERR) im AgentX-Fehler-Status-Feld (STSF) werden vom
Subagent (SA) an den Master-Agent (MA) gesendet (200).
Siehe 3. Als nächstes
verarbeitet der Master-Agent (MA) den Fehlercode (ERR) auf folgende
Weise (210). Der Master-Agent (MA) benutzt einen Prozessor
(P1) zur Verarbeitung des Fehlercodes. Der Prozessor kann ein Mikroprozessor,
eine zentrale Verarbeitungseinheit oder ein beliebiges einer Anzahl
von Verarbeitungsmitteln sein, die analoge Verarbeitungsmittel enthalten.
Er fragt "Kommt
die Management-Anfrage von einem SNMP-Manager?" (215). Wenn die Management-Anfrage
von einem SNMP-Manager kam, verarbeitet der Master Agent (MA) nur
die untersten 5 Bits (LB) des AgentX-Status-Feldes (STSF), weil der SNMP-Bediener
nur in der Lage ist, die in RFC 1905 definierten 18 SNMP-Fehler-Status-Werte
zu erkennen (220). Daher werden diese 5 Bits auf einen
der von SNMP definierten 18 Fehler-Status-Werte (ERRS) abgebildet (230).
-
Wenn
die Management-Anfrage von einer Web- oder einer CLI-Schnittstelle
kam, gibt der Master Agent (MA) den kompletten Fehlercode (ERR) des
AgentX-Status-Feldes (STSF) an die CLI- oder Web-Software oder den
Bediener weiter (240). Der Web-Schnittstellen- oder CLI-Handler
sucht dann in einer Fehlercode-Datenbank (ERRDB) eine entsprechende
Fehlermeldung, die dieser Fehlermeldung entspricht, und die auf
der Benutzerschnittstelle angezeigt wird (250) (siehe 4).
-
Der
Web-Handler (H1) oder CLI-Handler (H1) verwendet eine globale Bibliotheksfunktion,
MapErrorCode, um eine geeignete Fehlermeldung zu finden. Die Suchfunktion
von MapErrorCode ist eine Anwendungs-Programmierungs-Schnittstelle
(API). Eine API ist eine Spezifikation, die definiert, welche Prozeduren
von einem Anwendungsprogramm durchgeführt werden, wenn es einen definierten
Satz von Diensten aufruft. Sie wird in der Software (oder der Firmware)
gespeichert, die sich im Speicher (M1, M2) in der Web-Schnittstelle
(Web i/f) oder der CLI-Schnittstelle (CLI i/f) befindet. Der Speicher
kann RAM, ROM, PROM, EPROM sein. Der Handler gibt zwei Parameter
in MapErrorCode ein, den Fehlercode-Wert und einen Zeiger auf den
Speicher, aus dem die Fehlertext-Zeichenkette von der Bibliotheksfunktion
zurückgeliefert
wird. MapErrorCode ruft die Fehlertext-Zeichenkette ab, die einem
gegebenen Fehlercode (ERR) entspricht. Eigentlich setzt es den Fehlercode
(ERR) in eine Fehler-Zeichenkette um. MapErrorCode fügt nach
Bedarf auch den geeigneten Vorspann hinzu und gibt die komplette Fehler-(oder
Warnungs-)Zeichenkette zurück,
fertig zur Anzeige für
den Bediener. Wenn die Fehler-Zeichenkette für einen spezifizierten Fehlercode
(ERR) in der allgemeinen Fehler-Abbildungs-TDL-Datei nicht definiert
ist, gibt die MapErrorCode-API die Fehler-Zeichenkette zurück, die
für den
Code "genError" definiert ist.
-
In
einer bevorzugten Ausführung
ist der intern definierte Fehlercode (ERR) eine 16-Bit-Zahl – wobei
die unteren 5 Bits (LB), die Bits 0–4, für von SNMP definierte Fehlercodes
reserviert sind, und die nächsten
11 Bits (UB), die Bits 5–15,
dazu verwendet werden, einen internen Teil der zusätzlichen
Fehlerinformation zu speichern. Siehe 5(a).
Die unteren 5 Bits (LB) des intern definierten Fehlercodes (ERR)
bilden den Code, der vom SNMP-Manager gesehen wird. Daher entspricht
er den SNMP-Protokoll-Regeln.
-
Das
16-Bit-Feld kann auch in 3 Abschnitte (S1, S2, S3) unterteilt werden:
Die oberen 5 Bits (S1) kennzeichnen die Gruppe von Fehlercodes (Gruppen werden
Teams oder Software-Modulen
zugeordnet). Die mittleren 6 Bits (S2) kennzeichnen einen eindeutigen
Code innerhalb dieses Bereichs. Die untersten 5 Bits (LB) sind für den SNMP-Fehlercode
(ERR) reserviert. Siehe 5(b). In anderen
Ausführungen stehen
für den
intern definierten Fehlercode (ERR) 32 Bits zur Verfügung.
-
CLI-
und Web-Schnittstellen stellen den Fehlercode (ERR) als eine Zahl
dar, plus Fehler-Textnachricht. Für Lese-Operationen (wie z.B. interne Gets-
oder GetNext-Nachrichten, Web-Überwachung oder
Anzeige von Attributen, die Befehle CLI Show oder View, usw.) benutzen
die Subagents (SA) den Wert genErr = 5 als SNMP-spezifischen Teil
(oder als untere 5 Bits) jedes Fehlers, den sie entdecken. Die oberen
Bits (UB) können
spezielle Werte annehmen, die einer der 500 zusätzlichen Fehlermeldungen oder speziellen
Fehlermeldungen entsprechen. Für Schreib-Operationen
(wie z.B. Web- oder CLI-Konfigurations-
oder Aktions-Befehle) werden die in RFC 1905 definierten und in 6 gezeigten
Werte für den
SNMP-spezifischen
Teil des Codes verwendet.
-
7 zeigt
die Schritte, die im Programmcode der Programmiersprache C durchgeführt werden,
um die zusätzliche
Fehler-Information, oder die Bits 5–15 der Fehlercodes (ERR) zuzuweisen.
Sie zeigt die Zuordnung des eigenen Teils des Fehlercodes.
-
8 enthält Beispiele
für spezielle
Fehlermeldungen, die alle auf den SNMP-Fehlercode genErr = 5 abgebildet
sind.
-
9 zeigt,
wie die Web- und CLI-Schnittstellen-Komponente oder der Handler (H1) Befehle
in der 7770 RCP-Master-Agent-Subagent-Architektur (MA-SA)
sendet. In der vorliegenden Erfindung kann diese Komponente die
Web-Schnittstelle
(Web i/f) oder die Befehlszeilen-Schnittstelle (CLI i/f) sein. In dem
Beispiel sendet der Bediener einen Befehl an ein Peripheriegerät (z.B.
eine OC-3-Leitungsanschlusskarte),
um die Leitungs-Datenrate auf 1,5 MBit/s einzustellen (300).
Siehe 10. Der Bediener sendet hierzu
unter Verwendung der CLI-Schnittstelle (CLI i/f) einen Funktionsaufruf
Set (SET) zum Master-Agenten (MA). Der Master-Agent (MA) sendet einen AgentX-Befehl
(CMD) oder eine Nachricht an einen Subagent (SA), der das Peripheriegerät behandelt
(310). Der Subagent (SA) stellt fest, ob das Peripheriegerät die gewünschte Leitungs-Datenrate unterstützt. Der
Subagent stellt die Frage "Kann
das Peripheriegerät
die gewünschte
Leitungs-Datenrate unterstützen?" (320).
Wenn es dies nicht kann, ist der Befehl nicht konsistent zu der
Konfiguration des Peripheriegerätes.
Wenn das Peripheriegerät
die gewünschte
Leitungs-Datenrate nicht unterstützen kann,
sendet der Subagent (SA) einen Fehler-Status- oder Fehlercode (ERR)
zusammen mit seiner Antwort (RESP) zum Master-Agenten (MA) (325).
Die nächste
Abfrage ist "Ist
das Management-Protokoll SNMP?" (330).
Im vorliegenden Beispiel ist der Fehlercode (ERR) 0x5120C. Wenn
die Antwort Nein ist, weiß der
Master-Agent (MA), dass die Antwort zusammen mit dem Fehlercode
(ERR) von innen kam und gibt sie zur Web- und CLI-Schnittstellen-Komponente
oder Handler (H1) weiter (340). Die Web- und CLI-Schnittstellen-Komponente
(H1) sucht den Fehlercode (ERR) in einer Fehlercode-Datenbank (ERRDB),
wozu sie die MapErrCode-API verwendet (350). Die Fehlercode-Datenbank (ERRDB)
kann ein beliebiges aus einer Vielzahl von Mitteln zur Speicherung
von Informationen sein, wie z.B. RAM, ROM, PROM oder EPROM, usw.
In der Datenbank bedeutet 0x5120C eine ungültige Datenrate für eine OC-3-Karte.
Die Software des Web- oder CLI-Schnittstellen-Handlers (H1) gibt
die zugehörige Fehlermeldung
(ERM) weiter an den Bediener (360). In einer bevorzugten
Ausführung
kann der Bediener unter Verwendung eines Terminals (T1) auf die
Befehlszeilen-Schnittstelle (CMD i/f) zugreifen.
-
Wenn
das Peripheriegerät
die gewünschte Leitungs-Datenrate nicht unterstützen kann
und das Management-Protokoll SNMP war, geht die Antwort (RESP) vom
Subagent (SA) zum Master-Agent (MA) und dann zum Bediener, wozu
eine der 18 Standard-SNMP-Fehlermeldungen (ERM) verwendet wird (370).
-
Nicht-SNMP-Protokolle,
wie die Web- oder das CLI-Management-Protokoll unterstützen die erweiterten Fehlermeldungen.
SNMP hat keine Such-Tabelle oder Datenbank (DB), um die Befehle umzusetzen.
-
Wenn
das Peripheriegerät
die gewünschte Leitungs-Datenrate unterstützen kann,
wird der Befehl zum Peripheriegerät weitergegeben (380).
-
Obwohl
die Erfindung in dieser Patentanmeldung mit Bezug auf die Einzelheiten
bevorzugter Ausführungen
der Erfindung offen gelegt wurde, muss verstanden werden, dass diese
Offenlegung als Beispiel und nicht in einem einschränkenden
Sinn gedacht ist, wie auch in Erwägung gezogen wird, dass Änderungen
im Rahmen der beigefügten
Ansprüche
einem Fachmann leicht einfallen werden.