-
Gebiet der Erfindung
-
Die
Erfindung bezieht sich auf die Steuerung von Vermittlungsnetzknoten
in Kommunikationsnetzwerken, und insbesondere auf Verfahren zur
Steuerung mehrerer Vermittlungsnetzknoten in einem Stapel, in welchem
nur einige Vermittlungsnetzknoten in dem Stapel einen an diese angeschlossenen
Management-Prozessor haben.
-
Hintergrund der Erfindung
-
Auf
dem Gebiet der paketvermittelten Kommunikation werden Vermittlungsnetzknoten
eingesetzt, um den Paketverkehr zu den entsprechenden Netzwerkzielen
zu lenken. Vermittlungsnetzknoten können in einem verwalteten Modus
arbeiten, in welchem der Vermittlungsknoten die Dienste eines Management-Prozessors nutzt,
oder sie können
in einem unverwalteten Modus arbeiten, in welchem der Vermittlungsknoten
selbständig arbeitet.
Beide Betriebsmodi werden gewünscht,
weil im verwalteten Modus der Management-Prozessor beispielsweise
eine Lernfunktionalität
für den
Vermittlungsknoten bereitstellt, während der diesbezügliche Management-Mehraufwand
im unverwalteten Modus nicht anfällt.
Während
des normalen Betriebs umfassen die Hauptverkehrsquellen zum und
vom Management-Prozessor:
Datenpakete, die durch die Hardware-Klassifizierung nicht analysiert
werden können,
oder Pakete, die eine besondere Software-Unterstützung benötigen; Hardware-ausgelöste Unterbrechungen,
einschließlich
Statistikzählerumläufe; Einfügungen oder
Löschungen aus
der Media-Access-Control (MAC)-Adress-Nachschlagetabelle; oder Warnungen zur
Ressourcenverfügbarkeit.
Es gibt Kosten, die mit der Entwicklung, Implementierung, dem Einsatz
und dem Management des Management-Prozessors selbst verbunden sind.
-
Verschiedene
diesbezügliche
Lösungen,
die andernorts beschrieben werden, adressieren Probleme, die mit
der Optimierung des Management-Prozessors und der Reduzierung des
Mehraufwands für
das Management verbunden sind.
-
Eines
der Szenarien zur Anordnung von Vermittlungsnetzknoten beinhaltet
das Stapeln mehrerer Vermittlungsnetzknoten, die üblicherweise
in einem einzigen Baugruppenrahmen gemeinsam installiert sind.
-
Ein
Schalterstapel ist eine Konfiguration einer Gruppe von Vermittlungsnetzknoten,
welche sich gemeinsam wie ein einzelner logischer Vermittlungsnetzknoten
verhalten, während
ein höherer
Gesamtdatendurchsatz ermöglicht
wird. Es sei beispielsweise angenommen, dass ein einzelner Netzwerkschalter 102 24 Fast-Ethernet-Ports und
4 Gigabit-Ethernet-Ports aufweist. Obwohl der Netzwerkschalter 102 bis
zu 6,4 Gbps unterstützt,
wie in 1 dargestellt,
kann das Kaskadieren mehrerer derartiger Netzwerkschalter 102 den
Gesamtdatendurchsatz des Systems erhöhen. Die in 1 a) gezeigte Stapel-Konfiguration 100 liefert
einen Gesamtdatendurchsatz von 13,2 Gbps mit drei Vermittlungsknoten 102,
die in einer Ring-Konfiguration 104 angeordnet
sind. Die in 1 b) gezeigte
Stapel-Konfiguration 110 liefert einen Gesamtdatendurchsatz
von 22,4 Gbps mit sechs Vermittlungsknoten 102, die in
einer Doppelring-Konfiguration (104) angeordnet sind. Und
die in 1 c) gezeigte
Stapel-Konfiguration 120 liefert einen Gesamtdatendurchsatz
von 17,6 Gbps mit drei Vermittlungsknoten 102, die in einer
Stern-Konfiguration 104 angeordnet sind.
-
Obwohl
die Erhöhung
des Gesamtdatendurchsatzes Stapel-Anordnungen höchst wünschenswert macht, krankt es
an einer Schwierigkeit des Konfigurierens und Steuerns der Vermittlungsknoten 102,
die sich in einem derartigen Stapel befinden.
-
2 stellt den Stand der Technik
bei verwalteten Vermittlungsknoten-Anordnungen dar. Die in 2 a) dargestellte Anordnung 200 zeigt
jeden Vermitt lungsknoten 102, der einen individuellen Management-Prozessor 204 zur
Steuerung desselben hat. Wenn dies auch ein einfacher Ansatz ist,
ist er doch kostenaufwändig.
Die in 2 b) dargestellte
Anordnung 210 zeigt den gesamten Vermittlungsknotenstapel,
der von einem einzelnen Management-Prozessor 206 gesteuert
wird. In Übereinstimmung
mit diesem Ansatz wird gesagt, dass der Management-Prozessor 206 die
Steuerung und Konfiguration für
die einzelne Domäne,
die durch die Vermittlungsknoten 102 in dem Stapel bestimmt
wird, ermöglicht.
Der Management-Prozessor 206 sendet
Signale oder Mitteilungen an alle Vermittlungsknoten 102 in
dem Stapel über
eine separate Steuerungsebene 208, die üblicherweise als ein gemeinsam
genutztes Medium implementiert ist. Wie aus 2 a) und 2 b) ersichtlich
ist, reserviert jeder Vermittlungsknoten 102 einen dedizierten
Port, um die Dienste des Management-Prozessors 204/206 in
Anspruch zu nehmen, und die gemeinsam genutzte Management-Prozessor-Anordnung 210 krankt
an einem Mehraufwand, der durch. den Einsatz, die Konfiguration,
das Management und die Wartung des gemeinsam genutzten Mediums 208 anfällt.
-
Es
besteht daher ein Bedarf, die oben genannten Probleme bei der Bereitstellung
der Steuerung und Konfiguration von Vermittlungsknoten in einem
Stapel von Vermittlungsknoten zu lösen.
-
Zusammenfassende Darstellung
der Erfindung
-
In Übereinstimmung
mit einem Aspekt der Erfindung wird ein Vermittlungsnetzknoten einer
Mehrzahl von Vermittlungsnetzknoten, die an einem Stapel von Vermittlungsnetzknoten
beteiligt sind, bereitgestellt. Der Vermittlungsknoten umfasst:
wenigstens einen Stapelport für
den Austausch von Blöcken
mit wenigstens einem anderen Vermittlungsknoten in dem Stapel, ein
Vermittlungsknoten-Identifizierungsregister,
das die Vermittlungsknoten-Identifikation des Vermittlungsknotens
spezifiziert, ein Management-Knoten-Identifizierungsregister, das
den Vermittlungsknoten-Identifizierer des Vermittlungsknotens der
Mehrzahl von Vermittlungsknoten in dem Stapel spezifiziert, an welche
ein Management-Prozessor angeschlossen ist, und eine Weiterleitungstabelle,
um für
jeden Vermittlungsknoten in dem Stapel einen entsprechenden Stapelport
festzulegen, über
welchen die Blöcke
an besagten Vermittlungsknoten weiterzuleiten sind.
-
In Übereinstimmung
mit einem weiteren Aspekt der Erfindung wird ein Management-Prozessor
für das Fern-Management
einer Mehrzahl von Vermittlungsnetzknoten in einem Stapel bereitgestellt.
Der Management-Prozessor umfasst: Mittel zum Identifizieren eines
empfangenen Steuerblocks; Mittel zum Bestätigen des empfangenen Steuerblocks;
eine Ablage zum Verfolgen der Vermittlungsknotenzustände; Mittel
zum Einkapseln eines Befehls beim Erzeugen eines Steuerblocks; und Übertragungsmittel
zum Weiterleiten der erzeugten Steuerblöcke.
-
In Übereinstimmung
mit einem weiteren Aspekt der Erfindung wird ein Verfahren zum Auffinden
einer Mehrzahl von Vermittlungsnetzknoten in einem Stapel von Vermittlungsnetzknoten
bereitgestellt, wobei jeder Vermittlungsnetzknoten in dem Stapel
einen Vermittlungsknoten-Identifizierer hat, der einen reservierten
Identifizierungswert festlegt, und wenigstens einen Stapelport,
der konfiguriert ist, um in einem Sperrzustand alle Befehlsblöcke an eine
Befehlsmaschine weiterzuleiten, und in einem Weiterleitungszustand
die Befehlsblöcke in Übereinstimmung
mit den Leitinformationen weiterzuleiten, die in einer Weiterleitungstabelle
spezifiziert sind. Die Verfahrensschritte, die der Vermittlungsknoten
ausführt,
umfassen: Empfangen eines Befehlsblocks, der für einen Vermittlungsknoten
bestimmt ist, der den reservierten Identifizierungswert hat, über einen
im Sperrzustand konfigurierten Stapelport; Weiterleiten des Befehlsblocks
an die Befehlsmaschine; Bestätigen des
Befehlsblocks mit dem Vermittlungsknoten-Identifizierer; Einstellen
des Vermittlungsknoten-Identifizierers auf
einen neuen Wert, der in einem empfangenen Befehlsblock spezifiziert
ist, der einen Befehl einkapselt, der das Verändern des Vermittlungsknoten-Identifizierers
auf einen Wert, der von dem reservierten Wert abweicht, spezifiziert;
und Weiterleiten des nachfolgenden Befehlsblocks, der für einen
Vermittlungsknoten bestimmt ist, der den reservierten Identifizierungswert
hat, der über
einen Stapelport empfangen wurde, der im Weiterleitungszustand konfiguriert
ist, in Übereinstimmung
mit den Leitinformationen, die in der Weiterleitungstabelle angegeben
sind.
-
In Übereinstimmung
mit einem weiteren Aspekt der Erfindung wird ein Verfahren zum Auffinden
einer Mehrzahl von Vermittlungsnetzknoten in einem Stapel von Vermittlungsnetzknoten
bereitgestellt, wobei jeder Vermittlungsnetzknoten in dem Stapel
einen Vermittlungsknoten-Identifizierer hat, der einen reservierten
Identifizierungswert festlegt, und wenigstens einen Stapelport,
der konfiguriert ist, um in einem Sperrzustand alle Befehlsblöcke an eine
Befehlsmaschine weiterzuleiten, und in einem Weiterleitungszustand
die Befehlsblöcke in Übereinstimmung
mit den Leitinformationen weiterzuleiten, die in einer Weiterleitungstabelle
spezifiziert sind. Die zyklischen Verfahrensschritte, die der Management-Prozessor
ausführt,
sind: Übermitteln
eines Befehlsblocks, der einen Ziel-Vermittlungsknoten spezifiziert,
der den reservierten Identifizierungswert hat; Empfangen einer Bestätigung von
dem Vermittlungsknoten, die den reservierten Identifizierungswert
von dem neu aufgefundenen Vermittlungsknoten spezifiziert; Konfigurieren
des Vermittlungsknoten-Identifizierers
des neu aufgefundenen Vermittlungsknotens auf einen eindeutigen
Identifizierungswert, der von dem reservierten Identifizierungswert
abweicht; Abrufen der Stapelport-Identifizierer von dem neu aufgefundenen
konfigurierten Vermittlungsknoten; Auswählen eines Stapelports; und
Einstellen des ausgewählten
Stapelports im Weiterleitungszustand.
-
In Übereinstimmung
mit einem weiteren Aspekt der Erfindung wird ein Verfahren zur Bereitstellung
der Dienste des Management-Prozessors an einen Vermittlungsnetzknoten
in einem Stapel von Vermittlungsnetzknoten bereitgestellt. Das Verfahren
umfasst: Einkapseln von Daten bezüglich des Dienstes, der in
einen Block bereitgestellt wird; Zuordnen eines Block-Stapel-Tags
(FTAG) zu dem Block; Schreiben des Vermittlungsknoten-Identifizierers
des Vermittlungsknotens in ein Ziel-Vermittlungsknoten-Feld des FTAG; Übermitteln
des Blocks, welcher das FTAG trägt, an
den Vermittlungsknoten.
-
In Übereinstimmung
mit noch einem weiteren Aspekt der Erfindung wird ein Verfahren
zur Verarbeitung von Blöcken
am Vermittlungsnetzknoten in einem Stapel von Vermittlungsnetzknoten
bereitgestellt. Das Verfahren umfasst: selektives Weiterleiten eines
empfangenen Blocks basierend auf den Leitinformationen, die in einer
Vermittlungsdatenbank gespeichert sind, die dem Vermittlungsknoten
zugeordnet ist, wenn der empfangene Block einen anderen Klassifizierungsaktionswert
trägt als
den Klassifizierungsaktionswert, der für Steuerblöcke reserviert ist; selektives
Weiterleiten eines empfangenen Blocks basierend auf den Leitinformationen,
die in einer gespeicherten Weiterleitungstabelle gespeichert sind,
die dem Vermittlungsknoten zugeordnet ist, wenn der empfangene Block
einen Klassifizierungsaktionswert trägt, der für Steuerblöcke reserviert ist; und selektives
Verändern
des Klassifizierungsaktionswerts eines Blocks zu einem Klassifizierungsaktionswert,
der für
Steuerblöcke
reserviert ist, für
jeden Block, der Management-Prozessor-Dienste
benötigt.
-
Die
Vorteile ergeben sich aus den durchdachten Anordnungen der Vermittlungsknoten,
bei welchen eine geeignete Anzahl von Management-Prozessoren, weniger als die Anzahl
der Vermittlungsknoten in dem Stapel, basierend auf den Anforderungen
an Verarbeitung, Steuerung und Konfigurierungsbandbreite verwendet
wird, um Dienste an die entsprechenden Vermittlungsknoten in dem
Stapel bereitzustellen. Die Inband-Konfiguration und die Steuerung
der Vermittlungsknoten in dem Stapel reduzieren den Mehraufwand
bei Einsatz, Konfiguration, Management und Wartung.
-
Kurzbeschreibung der Zeichnungen
-
Die
Merkmale und Vorteile der Erfindung werden aus der folgenden detaillierten
Beschreibung des/der exemplarischen Ausführungsbeispiels/Ausführungsbeispiele
deutlicher ersichtlich, wobei auf die angefügten Zeichnungen Bezug genommen
wird, bei welchen:
-
1 a,
b und c schematische Darstellungen sind, die die beispielhaften
Anordnungen der Vermittlungsknotenstapel zeigen, welche einen erhöhten Gesamtdatendurchsatz
bereitstellen;
-
2 a
und b schematische Darstellungen sind, welche dem Stand der Technik
entsprechende Anordnungen von verwalteten Vermittlungsknotenstapeln
zeigen;
-
3 eine
schematische Darstellung ist, die in Übereinstimmung mit dem exemplarischen
Ausführungsbeispiel
der Erfindung die Elemente zeigt, die die Fernsteuerung der Vermittlungsknoten
in einem Vermittlungsknotenstapelimplementieren;
-
4 ein
Ablaufdiagramm ist, das in Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel der
Erfindung die Prozessschritte zeigt, die ein Management-Prozessor
ausführt,
der die Fernsteuerung und Konfiguration in einem Vermittlungsknotenstapelimplementiert.
-
5 ein
Ablaufdiagramm ist, das in Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel der
Erfindung die Prozessschritte zeigt, die ein Vermittlungsknoten
in einem Vermittlungsknotenstapel, ferngesteuert und konfiguriert
von einem Management-Prozessor, ausführt;
-
6 ein
Prozessdiagramm ist, das in Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung die Schritte eines Unterbrechungs-Bestätigungsprozesses
zeigt;
-
7 ein
Prozessdiagramm ist, das in Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung einen Stapelinitialisierungsprozess zeigt;
-
8 a
und b schematische Darstellungen sind, die die Initialisierung von
Vermittlungsnetzknoten in einem Stapel zeigen, der eine Ring-Konfiguration
und eine Schleifenauffindung der Steuerblöcke hat;
-
9 eine
schematische Darstellung ist, die in Übereinstimmung mit dem exemplarischen
Ausführungsbeispiel
der Erfindung die Steuerblock-Schleifenerkennung zeigt; und
-
10 eine
schematische Darstellung ist, die in Übereinstimmung mit dem exemplarischen
Ausführungsbeispiel
der Erfindung mehrere Steuer- und Konfigurationsdomänen in einem
Stapel zeigt, wobei jede Domäne
einen zugeordneten Management-Prozessor hat.
-
Es
sei angemerkt, dass bei den angefügten Zeichnungen gleiche Merkmale ähnliche
Bezeichnungen tragen.
-
Detaillierte Beschreibung
der Ausführungsbeispiele
-
Es
wird auf 3 Bezug genommen; in Übereinstimmung
mit einem exemplarischen Ausführungsbeispiel
der Erfindung werden die Netzwerkschalter 302 in einem
Stapel 300 von einem Management-Prozessor 306 konfiguriert
und gesteuert, der mit einem der Vermittlungsnetzknoten 302 verbunden 304 ist,
ohne einen separaten Management-Prozessor für jeden Vermittlungsnetzknoten 302 in
dem Stapel 300 einzusetzen. Die hierin dargestellte Methode
wird als Fernkonfiguration und -steuerung der Vermittlungsknoten 302 in
einem Stapel 300 bezeichnet.
-
Die
beispielhaften Elemente einer Anordnung für Fernkonfiguration und -steuerung
in einer Stapel-Konfiguration umfassen Verknüpfungen, die die Vermittlungsknoten 302 miteinander
verbinden, bezeichnet als Stapelverknüpfungen 307, die die
Stapelports 308 verbinden.
-
In Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung weist jeder Block
400, der von über einen
Stapelport
308 übermittelt
wird, ein Block-Stapel-TAG (FTAG)
406 auf, das das folgende
beispielhafte Format hat:
-
Die
Größe des FTAG 406 korreliert
mit dem Mehraufwand, der durch eine derartige Implementierung entsteht,
die Größe des verwendeten
FTAG 406 bleibt der Designauswahl überlassen, welche für jede Anordnung
ein Gleichgewicht zwischen dem entstehenden Mehraufwand und der
unterstützten
Funktionalität
darstellt.
-
Jedes
FTAG 406 enthält
Informationen über
einen verarbeiteten Block, was beispielsweise einschließt, ob der
Block an einen einzelnen Empfänger
oder eine Gruppe adressiert ist, eine Übermittlungspriorität, eine VLAN-Zuordnung,
die ursprüngliche "Quelle" – den Vermittlungsknoten 302 und
den externen Port, über
welchen der Block 400 zuerst empfangen wurde, etc. Wie
nachstehend detaillierter beschrieben werden wird, bestimmt ein
Klassifiziereraktions-Feld für
jeden Block 400, wohin der Block 400 von jedem
Vermittlungsknoten 302 in dem Stapel 300 weitergeleitet
wird.
-
In Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung bilden, obwohl die meisten Blöcke, die über einen Stapelport 308 befördert werden,
tatsächlich
ein FTAG 406 beinhalten, MAC-Fluss-Steuerblöcke eine
Ausnahme. Daher wird eine FTAG-Signatur benötigt, um die Blöcke, die
ein FTAG 406 enthalten, von den Blöcken ohne FTAG zu unterscheiden.
Eine derartige FTAG-Signatur
identifiziert beispielhaft die erste Zahl der Bits/Bytes nach der
Präambel
als ein FTAG und nicht als die eigentlichen Blockdaten 404.
Das FTAG 406 und die FTAG-Signatur können dem Block-Kopfteil 402 zugeordnet
werden, ohne die Erfindung darauf zu beschränken.
-
In Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung beinhaltet jeder Vermittlungsknoten
302 in
dem Stapel
300 eine Befehlsmaschine
310. Die beispielhafte
Funktionalität
der Befehlsmaschine
310 umfasst: Decodieren der Befehlsblöcke
410,
die vom Management-Prozessor
306 empfangen werden, Ausführen der
darin enthaltenen Befehle und Erzeugen einer Bestätigung und/oder
Antwort. Wenn der Management-Prozessor
306 ein „ferner" Prozessor ist – das heißt, er ist
nicht direkt an den Subjekt-Vermittlungsknoten
302 angeschlossen – dann agiert
die Befehlsmaschine
310 als das lokale Surrogat des Management-Prozessors
302,
indem sie die Logik des Vermittlungsnetzknotens
302 konfiguriert
und auf die erfolgte Fernsteuerung antwortet. Außerdem kann die Befehlsmaschine
310 ausgehende
Befehlsblocks
410 initiieren, um den fernen Management-Prozessor
306 zu
unterbrechen, wenn Dienste und/oder Unterstützung benötigt werden. Die folgende Tabelle
zeigt ein beispielhaftes Format eines solchen beispielhaften Befehlsblocks
410:
-
Der
Operationscode eines Befehlsblocks
410 wird verwendet,
um den Typ des Befehls oder der Antwort, der in den Blockdaten
404 codiert
ist, zu identifizieren. Die Abtastbefehl-Operationscodes sind nachstehend
aufgeführt,
obwohl die Vielfalt der Fernbefehle/-anforderungen, die bei einer
bestimmten Implementierung verwendet werden können, praktisch unbegrenzt
ist:
-
Der
Inhalt der eigentlichen Blockdaten 404 eines Befehlsblocks 410 variiert
in Abhängigkeit
vom Operationscode des Befehlsblocks 410. Beispielsweise
enthält
der Inhalt eines Befehlsblocks 410 mit dem Operationscode „000011" (Registerschreibanforderung)
die Adressen der Register, in die geschrieben werden soll, und die
zugeordneten Werte. Im Gegensatz dazu enthält der Inhalt eines Befehlsblocks 410 mit
dem Operationscode „001000" (Statistikzählerumlauf)
eine Bitmap aller Hardware-Statistikzähler in
dem Vermittlungsknoten 302, aus welchem der Befehlsblock 410 stammte,
mit einer Logik hoch „1" in nur denjenigen
Bit-Positionen, für
welche die Zähler
umgelaufen sind.
-
In Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung beinhaltet jeder Vermittlungsknoten
302 in
dem Stapel
300 eine Weiterleitungstabelle
350,
die nachstehend für
den Vermittlungsknoten
302-2 in dem Stapel
300 beispielhaft
dargestellt ist:
-
An
jedem Vermittlungsknoten 302 in dem Stapel 300 speichert
die lokale Weiterleitungstabelle 350 den Stapelport-Identifizierer, über welchen
ein Block 400/410 weitergeleitet werden muss,
um einen anderen Vermittlungsknoten 302 in dem Stapel 300 zu
erreichen.
-
In Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung speichert zusätzlich zu
der Weiterleitungstabelle 350 jeder Vermittlungsknoten 302 in
dem Stapel 300 auch seine eigene eindeutige ID, sowie die
ID des Vermittlungsknotens 302, an welchen sein steuernder
Management-Prozessor 306 direkt angeschlossen ist. Diese
Informationen werden üblicherweise
in den lokalen Registern 352 gespeichert.
-
In Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung arbeiten die oben genannten Elemente zusammen, um
den Inband-Steuerblock-Transport in einem Vermittlungsknotenstapel 300 zu
ermöglichen,
für welchen
die Fernsteuerung angewendet wird.
-
In Übereinstimmung
mit einem ersten beispielhaften Szenario erzeugt der Management-Prozessor 306 einen
Befehl für
einen fernen Vermittlungsknoten 302.
-
Es
wird nun auf 4 Bezug genommen; der Management-Prozessor 306 verkapselt 422 den
Befehl in einem Befehlsblock 410, einschließlich eines
FTAG 406. Das „Klassifiziereraktions"-Feld des FTAG 406 ist beispielsweise
auf „2"eingestellt 424,
wobei das „Ziel-Vermittlungsknoten"-Feld auf die Vermittlungsknoten-ID des
Vermittlungsknotens 302 eingestellt 426 ist, für welchen
der Befehl bestimmt ist. Das „Ziel-Port"-Feld ist auf einen
Wert eingestellt 428, der reserviert worden ist, um die
Befehlsmaschine 310 des beabsichtigten Ziel-Vermittlungsknotens 302 anzuzeigen.
In Übereinstimmung
mit einer beispielhaften Implementierung des exemplarischen Ausführungsbeispiels
der Erfindung kann – wenn
kein Vermittlungsknoten 302 in dem Stapel 300 mehr
als 29 physikalische Ports enthält – ein spezieller
Wert „31" in dem „Ziel-Port"-Feld verwendet werden,
um anzuzeigen, dass der Steuerblock 410 für die Befehlsmaschine 310 bestimmt
ist. Und, der Befehlsblock 410 wird an den beabsichtigten
Vermittlungsknoten 302 gesendet 430.
-
Es
wird nun auf 5 Bezug genommen; wenn ein Befehlsblock 410 einen
Stapel 300 durchläuft,
erkennt 432 die Vermittlungsknoten-Hardware an oder in
der Nähe
der Schnittstelle eines Stapelports 308, das Media-Access-Control
(MAC)-Modul, an
jedem Vermittlungsknoten 302 entlang des Weges den Befehlsblock 410 an
seiner FTAG-Signatur. Das MAC-Modul extrahiert 434 die
FTAG 406 für
die Verwendung durch einen Klassifizierer des Vermittlungsknotens 302.
-
Eine
Such- und Klassifizierungsmaschine beobachtet 436, dass
das „Klassifiziereraktions"-Feld, das in dem
FTAG 406 spezifiziert ist, auf „2" eingestellt ist, was bedeutet, dass
das Ziel des Steuerblocks, das in dem FTAG 406 angegeben
ist, die Ergebnisse einer Datenbanksuche oder Klassifizierung außer Kraft
setzt.
-
Wenn
die Such- und Klassifizierungsmaschine eines Vermittlungsknotens 302 beobachtet 438,
dass der „Ziel-Vermittlungsknoten" in dem FTAG 306 mit
der Vermittlungsknoten-ID des Vermittlungsknotens 302 übereinstimmt,
der die Bestimmung vornimmt, dann muss der Befehlsblock 410 für einen
lokalen Port oder die lokale Befehlsmaschine 310 bestimmt
sein. Wenn das „Ziel-Port"-Feld auf den Wert
eingestellt 440 ist, der für die Befehlsmaschine 310 reserviert
ist, gibt 442 die Such- und
Klassifizierungsmaschine den Befehlsblock 410 an die lokale
Befehlsmaschine 310 weiter.
-
Wenn
der Befehlsblock 410 von der Ziel-Befehlsmaschine 310 empfangen
wird, decodiert die Befehlsmaschine 310 den Befehl durch
Lesen und Interpretieren des Operationscodes und führt 444 den
Befehl aus. Das Ausführen 444 eines
Befehls involviert üblicherweise
die Interaktion mit anderen Hardware-Modulen des Vermittlungsknotens 302,
in welchen sich relevante Register oder Aufzeichnungen, die zu lesen
oder zu aktualisieren sind, befinden können.
-
Wenn
die Such- und Klassifizierungsmaschine beobachtet 438,
dass der „Ziel-Vermittlungsknoten" in dem FTAG 406 nicht
mit der Subjekt-Vermittlungsknoten-ID übereinstimmt, dann muss der
Befehlsblock 410 für
einen anderen Vermittlungsknoten 302 in dem Stapel 300 bestimmt
sein. In diesem Fall konsultiert 446 die Such- und Klassifizierungsmaschine
die Weiterleitungstabelle 350, wobei sie die angegebene
Ziel-Vermittlungsknoten-ID als Index zur Bestimmung des richtigen
Ausgangsstapelports 308 für den Steuerblock 410 verwendet,
und leitet 448 den Steuerblock 410 über den
festgelegten Stapelport 308 weiter.
-
In Übereinstimmung
mit einem zweiten Szenario antwortet die Befehlsmaschine auf einen
Befehl von dem fernen Management-Prozessor 306.
-
Wenn
die Befehlsmaschine 310 die Ausführung eines Befehls abgeschlossen
hat, kann die Befehlsmaschine 310 den Abschluss bestätigen und üblicherweise,
aber nicht notwendigerweise, mit einer diesbezüglichen Information antworten.
Bei der Bestätigung/Antwort
verkapselt 450 die Befehlsmaschine 310 eine Antwort/Bestätigung in
einem Befehlsblock 410, einschließlich eines FTAG 406.
Das „Klassifiziereraktions"-Feld des FTAG 406 ist
auf „2" eingestellt 452,
wobei das „Ziel-Vermittlungsknoten"-Feld auf den Vermittlungsknoten 302 eingestellt 454 ist,
an welchen der steuernde Management-Prozessor 306 direkt
angeschlossen ist. Das „Ziel-Port"-Feld ist auf die
Management-Prozessor-Port-ID eingestellt 456. Die Befehlsmaschine 310 schreibt (450)
den Inhalt des Antwortblocks 410, beispielsweise die Daten,
die aus einem oder mehreren Registern ausgelesen wurden.
-
In Übereinstimmung
mit einer beispielhaften Implementierung des exemplarischen Ausführungsbeispiels
der Erfindung wird der Mehraufwand bezüglich der Verarbeitung der
Steuerblöcke 410 an
dem Vermittlungsknoten 302 beim Beantworten/Bestätigen eines
Steuerblocks 410, der von dem Management-Prozessor 306 gesendet
wurde, reduziert, indem der empfangene Anforderungssteuerblock 410,
der bereits am Vermittlungsknoten 302 mit dem entsprechenden
Antwortsteuerblock 410 gespeichert ist, überschrieben,
wenn der Antwortsteuerblock 410 erzeugt 450 wird,
unter der Annahme, dass jeder Antwortsteuerblock 410 höchstens so
groß wie
der empfangene Anforderungssteuerblock 410 ist.
-
Der
Bestätigungs-/Antwortsteuerblock 410 wird
dann über
einen Stapelport 308 gesendet 458, wie er in der
Weiterleitungstabelle 350 spezifiziert ist,. Wenn der Bestätigungs-/Antwortsteuerblock 410 für den lokalen
Vermittlungsknoten 302 bestimmt ist, ist davon auszugehen,
dass der Bestätigungs-/Antwortsteuerblock 410 über einen
Spiegel-Stapelport gesendet 458 wird, und der Prozess wird
ab Schritt 432 fortgesetzt.
-
Wenn
die Spezifikation des „Ziel-Vermittlungsknotens" des Antwortsteuerblocks
die ID des lokalen Vermittlungsknotens angibt 438, wobei
der lokale Vermittlungsknoten 302 den Bestätigungs-/Antwortsteuerblock 410 erzeugte,
und der „Ziel-Port" der Port 303 ist 460,
an welchen der Management-Prozessor 306 angeschlossen ist,
dann sendet 462 die Befehlsmaschine 310 den Steuerblock 410 an
den Port 303 des lokalen Management-Prozessors.
-
Wenn
die Spezifikation des „Ziel-Vermittlungsknotens" des Antwortblocks
die ID des lokalen Vermittlungsknotens nicht festlegt 438,
dann ist der steuernde Manage ment-Prozessor 306 mit einem
anderen Vermittlungsknoten 302 in dem Stapel 300 verbunden.
In diesem Fall konsultiert 446 die Befehlsmaschine 310 die Weiterleitungstabelle 350,
um den richtigen Ausgangsstapelport 308 für die Weiterleitung 448 des
Antwortsteuerblocks 410 an den Vermittlungsnetzknoten 302 zu
bestimmen, an welchen der steuernde Management-Prozessor 306 direkt
angeschlossen ist.
-
Die
Weiterleitung 448 des Antwortsteuerblocks 410 durch
den Stapel 300 wird Vermittlungsknoten 302 für Vermittlungsknoten 302 fortgesetzt,
bis er schließlich
seinen Weg zu dem richtigen Ziel-Vermittlungsknoten 302 findet,
wie oben unter Bezugnahme auf das erste Szenario beschrieben wird.
Wenn am richtigen 438 Ziel-Vermittlungsknoten 302, beobachtet 460 die
lokale Steuermaschine 310, dass der „Ziel-Port", der in dem FTAG 406 spezifiziert
ist, der Port 303 des Management-Prozessors ist, und der Bestätigungs-/Antwortsteuerblock 410 wird
an den Management-Prozessor 306 weitergeleitet 462.
-
In Übereinstimmung
mit einem dritten Szenario liefert die Befehlsmaschine 310 eine
Unterbrechung an den fernen Management-Prozessor 306.
-
Wenn
irgendein Hardware-Modul des Vermittlungsknotens 302 eine
Management-Prozessor-Unterbrechung anfordert, codiert 466 die
lokale Befehlsmaschine 310 die Unterbrechungs-Informationen
in einen Befehlsblock 410, der ein FTAG 406 hat.
Das „Klassifiziereraktions"-Feld des FTAG 406 ist
auf „2" eingestellt 452,
wobei das „Ziel-Vermittlungsknoten"-Feld auf die Vermittlungsknoten-ID
des Vermittlungsknotens 302 eingestellt 454 ist,
an welchen der steuernde Management-Prozessor 306 direkt
angeschlossen ist. Das „Ziel-Port"-Feld ist ebenfalls
auf den Port 303 des Management-Prozessors eingestellt 456.
-
Die
Weiterleitung des Befehlsblocks 410 wird fortgesetzt, wie
oben unter Bezugnahme auf das zweite Szenario beschrieben wird.
-
In Übereinstimmung
mit einem vierten Szenario leitet die Such-/Klassifizierungsmaschine
einen Block an den Management-Prozessor 306 um.
-
Unter
bestimmten Bedingungen kann die Such-/Klassifizierungsmaschine einen
Block 400 an den Management-Prozessor 306 umleiten 470,
indem ein FTAG 406 in den Subjekt-Block 400 einbezogen
wird. Wenn zum Beispiel die Ziel-IP-Adresse eines Layer-3-Blocks 400 in
der Datenbank des lokalen Vermittlungsknotens 302 nicht
gefunden wird, dann kann der Vermittlungsknotens 302 den
Block 400 an den Management-Prozessor 306 umleiten 458,
welcher eine Routing-Funktionalität bereitstellt. Außerdem können andere,
spezielle Typen von Blöcken 400,
wie beispielsweise Blöcke 400 nach
dem Bridge Protocol Data Units (BPDUs) oder Spanning Tree Protocol
(STP), durch die Such-/Klassifizierungsmaschine des lokalen Vermittlungsknotens 302 abgefangen
und an den Management-Prozessor 306 zur speziellen Bearbeitung
weitergeleitet werden. Wenn an einen derartigen Block 400 ein
FTAG 406 „angegefügt" 472 wird,
ist das „Klassifiziereraktions"-Feld des FTAG 406 auf „2" eingestellt 452,
wobei das „Ziel-Vermittlungsknoten"-Feld auf den Vermittlungsknoten 302 eingestellt 454 ist,
an welchen der steuernde Management-Prozessor 306 direkt angeschlossen
ist. Das „Ziel-Port"-Feld ist außerdem auf
den Port 303 des Management-Prozessors eingestellt 456.
Die Weiterleitung 458 des modifizierten Blocks 400 wird
fortgesetzt, wie oben unter Bezugnahme auf das zweite Szenario beschrieben
wird.
-
In Übereinstimmung
mit einem fünften
Szenario sendet der Management-Prozessor 306 einen
Block 400, der über
einen Port weiterzuleiten ist, an einen fernen Vermittlungsknoten 302.
-
Es
wird auf 4 Bezug genommen; der häufigste
Zeitpunkt, zu welchem ein Nicht-Befehlsblock 400 vom Management-Prozessor 306 gesendet
wird, ist der Zeitpunkt, nachdem der Management-Prozessor 306 die
IP-Adresse eines Blocks aufgelöst 478 hat,
das heißt,
als Reaktion auf einen Block 400, der an den Management-Prozessor 306 weitergeleitet 458 wird,
wie hierin oben unter Bezugnahme auf das vierte Szenario beschrieben
wird. In diesem Fall modifiziert 480 der Management-Prozessor 306 das
FTAG 406 und die Nutzinformationen des empfangenen 476 Blocks 400,
bevor der Block 400 an den fernen Vermittlungsknoten 302 gesendet
wird. Das „Klassifiziereraktions"-Feld des FTAG 406 ist
auf „2" eingestellt 482,
und das „Ziel-Vermittlungsknoten"-Feld und das „Ziel-Port"-Feld sind auf die
Quell-Vermittlungsknoten-ID und die Ausgangsport-ID eingestellt 484/486,
basierend auf der aufgelösten
IP-Adresse.
-
Die
Weiterleitung des Blocks 400 wird fortgesetzt, wie hierin
oben unter Bezugnahme auf das erste Szenario beschrieben wird.
-
Wenn
der Block schließlich
den Ziel-Vermittlungsknoten 302 erreicht, identifiziert 432 die
lokale Such-/Klassifizierungsmaschine den Block 400 und
leitet 490 den Block 400 an den angegebenen Ausgangsport
um. Bei diesem Prozess lernt 492 die Such-/Klassifizierungsmaschine
die neue Ziel-IP-Adressen-/Ausgangsport-Zuordnung.
-
Dementsprechend
repräsentieren
die fünf
hierin vorstehend beschriebenen Szenarien die Inband-Konfiguration
und die Steuerblock-Weiterleitung.
-
Die
Blöcke
werden über
einen externen Port am Vermittlungsknoten 302 empfangen
und werden mit einem FTAG versehen 510.
-
In Übereinstimmung
mit einem sechsten Szenario werden die Blöcke 400 zwischen den
Stapelports 308 in einem Stapel 300 weitergeleitet 458,
indem Layer-2- oder
Layer-3-Datenbanksuchen 502 bei jedem Sprung ausgeführt werden.
Das „Klassifiziereraktions"-Feld in dem FTAG 406 derartiger
Blöcke 400 ist
auf „0" eingestellt 500.
Alternativ kann der Erstsprung-Vermittlungsknoten 302 dem
Block 400 nach der Klassifizierung eine Fluss-ID zuweisen 504 und
die Fluss-ID in dem FTAG 406 speichern. Durch Einstellen 506 der „Klassifiziereraktion" auf „1" kann die Such-/Klassifizierungsmaschine
nachfolgende Sprünge
zwingen 508, die vorher zugewiesene Fluss-ID zu verwenden,
um die Ergebnisse der lokalen Datenbanksuchen außer Kraft zu setzen.
-
Dementsprechend
beschreiben die obigen sechs beispielhaften Szenarien ausführlich die
Blockweiterleitung in dem Stapel 300.
-
In Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung wird ein Unterbrechungs-Bestätigungsprotokoll bereitgestellt.
-
Wenn
ein einzelner Management-Prozessor 306 mehrere Vermittlungsnetzknoten 302 in
einem Stapel 300 über
Inband-Mitteilungen steuert, wird die Zuverlässigkeit des Inband-Kommunikationskanals
zu einem entscheidenden Problem.
-
Wie
unter Bezugnahme auf das erste und zweite Szenario oben beschrieben
wird, bestätigen
die Befehlsmaschinen 310 jeden empfangenen Befehlsblock 410,
so dass der Management-Prozessor 306 überwachen kann, ob ausgegebene
Befehle tatsächlich
ihre Ziele erreichten und ausgeführt
wurden. Wenn der Management-Prozessor 306 keine
Bestätigung
erhält,
dann muss er annehmen, dass der Befehlsblock 410 verloren
gegangen ist, und sendet daher den Befehlsblock 410 erneut.
-
Es
ist möglich,
dass der Befehl tatsächlich
empfangen und ausgeführt
wurde, während
die Bestätigung selbst
verloren ging oder verzögert
wurde. Dieser Zustand führt
dazu, dass der Management-Prozessor 306 denselben Befehl
mehrere Male ausgibt, wodurch der ferne Vermittlungsknoten 302 veranlasst
wird, einen solchen unbestätigten
Befehl versehentlich mehrere Male auszuführen.
-
Implementierungen,
die auf dem hierin beschriebenen exemplarischen Ausfüh rungsbeispiel
basieren, sollten im möglichen
Umfang gewährleisten,
dass vom Management-Prozessor 306 ausgegebene Befehle, wenn
sie zweimal ausgeführt
werden, harmlos sind.
-
Vorteilhafterweise
sind die meisten der Befehle, die benötigt werden, um die Vermittlungsnetzknoten 302 in
einem Stapel 300 zu steuern und zu konfigurieren, harmlos;
Beispiele sind Lesen eines Registers/Schreiben in ein Register oder
Updates von Vermittlungsdatenbanken.
-
Es
sei jedoch an die obige Beschreibung erinnert, dass die Befehlsmaschine 310 immer
dann einen Befehlsblock 410 erzeugt, wenn eine Unterbrechung
des Management-Prozessors 306 benötigt wird. Um einen zuverlässigen Inband-Kanal
zu gewährleisten,
stellt die Befehlsmaschine 310 fest, ob jede Unterbrechungsmiteilung
tatsächlich
den Management-Prozessor 306 erreicht, indem sie die Bestätigungen
(410) überwacht.
Wie oben beschrieben, könnte
die Befehlsmaschine 310 wegen einer verlorenen oder verzögerten Bestätigung vom
Management-Prozessor 306 irrtümlicherweise dieselbe Unterbrechung
zweimal ausgeben, was den Management-Prozessor 306 veranlasst, die
Absicht der Befehlsmaschine falsch zu interpretieren. Angenommen,
der Management-Prozessor 306 empfängt zwei Unterbrechungsmitteilungen
von dem Vermittlungsknoten 302-3 in kurzen Zeitabständen, wobei
jede Unterbrechungsmitteilung angibt, dass der Statistikzähler für „Gesamt-Bytes, empfangen
an Port 7" umgelaufen
ist. Der Management-Prozessor 306 kann fälschlicherweise
feststellen, dass dieser Zähler
tatsächlich
zweimal umgelaufen ist, während
es real einfach dieselbe Unterbrechungsmitteilung sein kann, die
zweimal ausgegeben wurde.
-
Die
Mehrdeutigkeit wird in Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung adressiert, indem ein Unterbrechungs-Bestätigungsprotokoll 600,
wie in 6 gezeigt, verwendet wird. Das Unterbrechungs-Bestätigungsprotokoll
bezieht drei beteiligte Entitäten
ein: das Unterbrechungs-Client-Modul 602 des zugeordneten
Vermittlungsknotens 302, die zugeordnete Befehlsmaschine 310 an
dem lokalen Vermittlungsknoten 302 und den Management-Prozessor 306.
Die folgende Terminologie wird hierin verwendet, um eine beispielhafte
Unterbrechungs-Bestätigungsprotokoll-Implementierung
zu beschreiben.
- – Ein Unterbrechungs-Client-Modul 602 ist
ein Hardware-Block eines Subjekt-Vermittlungsknotens 302,
im Hinblick auf welchen ein Unterbrechungsereignis initiiert wird.
Wenn, aus dem obigen Beispiel, ein Statistikzähler in dem MAC-Block umläuft, ist
der Management-Prozessor 306 zu informieren. Der MAC-Block verhält sich
wie das Unterbrechungs-Client-Modul 602.
- – Lokaler
Unterbrechungsvektor 604: Ein Unterbrechungs-Client-Modul 602 kann
mehrere Ereignisse erfahren, die eine Unterbrechung des Management-Prozessors 306 auslösen, das
Unterbrechungs-Client-Modul 602 muss eine Bitmap führen, welche
angibt, welches Ereignis oder Ereignisse für das Auslösen des Management-Prozessors 306 verwendet
werden. Diese Bitmap, bezeichnet als ein lokaler Unterbrechungsvektor 604,
ist lokal an dem Subjekt-Vermittlungsknoten 302 gespeichert.
- – CMD-Unterbrechungszustand-Vektor 606:
Die Befehlsmaschine 310 unterhält einen Unterbrechungszustand-Vektor 606 für jedes
Unterbrechungs-Client-Modul 602 des
Subjekt-Vermittlungsknotens 302. Eine Unterbrechungsanforderung
eines Client wartet so lange, bis der Empfang derselben von dem
Management-Prozessor 306 bestätigt worden ist. Dieser Wartezustand
wird durch ein Logik hoch „1" in dem CMD-Unterbrechungszustand-Vektor 606 wiedergegeben.
- – Thread:
Wenn ein Unterbrechungs-Client-Modul 602 ein oder mehrere
Unterbrechungsereignisse ausgelöst
hat, formuliert und sendet die Befehlsmaschine 310 einen
Befehlsblock 410, der den Unterbrechungszustand für dieses
Unterbrechungs-Client-Modul 620 enthält, und wartet dann auf eine
Bestätigung
vom Management-Prozessor 306. Die Befehlsmaschine 310 kann
mehrere Clients 602 gleichzeitig bedienen, das heißt, es können mehrere
solche Befehlsblöcke 410,
oder ihre entsprechenden Bestätigungen,
zu einem gegebenen Zeitpunkt im Transit sein. Diese mehreren parallelen
Operationen werden als Threads bezeichnet. Für jeden Thread muss ein geringer
Umfang von Zustandsinformationen von der Befehlsmaschine 310 und
von dem Management-Prozessor 306 aufrecht erhalten werden.
- – Folgenummer:
Die Befehlsblöcke 410 und
Bestätigungen
(410) werden durch die Thread-Nummer und durch eine Folgenummer,
welche für
jeden gesendeten/bestätigten
Befehlsblock 410 um 1 inkrementiert wird, identifiziert.
Die Folgenummer ist in dem Kopfteil des Steuerblocks 410 enthalten,
wie oben gezeigt. Für
jeden Thread werden Zähler
unterhalten.
-
Dementsprechend
verfolgt der Management-Prozessor 306 die CMD-Unterbrechungszustand-Vektorinformationen
in einer Ablage, die dort zugeordnet ist.
-
Wenn
ein Unterbrechungsereignis 650 eintritt, stellt 652 das
Unterbrechungs-Client-Modul 602 das entsprechende
Bit in dem entsprechenden lokalen Unterbrechungsvektor 604 ein.
Das Auslösen
der Unterbrechung beginnt damit, dass das Unterbrechungs-Client-Modul 602 den
Zugriff 654 auf die Befehlsmaschine 310 anfordert.
Wenn der Zugriff auf die Befehlsmaschine gewährt 656 wird, aktualisiert 658 die
Befehlsmaschine 310 den CMD-Unterbrechungszustand-Vektor 606,
der diesem Unterbrechungs-Client-Modul 602 zugeordnet ist.
In Übereinstimmung
mit einer beispielhaften Implementierung des exemplarischen Ausführungsbeispiels der
Erfindung ist der neue CMD-Unterbrechungszustand-Vektor 606 das
bitweise ODER des alten Vektors 606 und der lokale Unterbrechungsvektor 604 des
Client. Und, das Unterbrechungs-Client-Modul 602 löscht 660 seinen
lokalen Unterbrechungsvektor 604.
-
Jeder
CMD-Unterbrechungszustand-Vektor 606, der ein Logik hoch „1" an irgendeiner Bit-Position
enthält,
macht es erforderlich, dass ein Befehlsblock 410 an den
Management-Prozessor 306 im Auftrag dieses Unterbrechungs-Client-Moduls 602 gesendet
wird. In Übereinstimmung
mit einer beispielhaften Implementierung der Erfindung repräsentiert
die Anzahl der aktiven Threads eine verwaltete Ressource an dem
Vermittlungsnetzknoten 302, und daher wählt die Befehlsmaschine 310,
wenn einer der mehreren Threads frei wird, eines der in Frage kommenden
Unterbrechungs-Client-Module 602 aus, um es zu verwenden.
Zum Beispiel kann der Arbitrierungsalgorithmus, der verwendet wird,
um ein Unterbrechungs-Client-Modul 602 für den Dienst
auszuwählen,
an einer Round-Robin-Disziplin festhalten. Wenn der ausgewählte Thread
belegt wird, wird die Folgenummer für den Thread inkrementiert.
-
Die
Befehlsmaschine 310 erzeugt 662 einen Befehlsblock 410 und
sendet 664 den Befehlsblock 410 im Auftrag des
Unterbrechungs-Client-Moduls 602. Der Befehlsblock 410 enthält den aktuellen
Wert des CMD-Unterbrechungszustand-Vektors 606 (Bitmap) für dieses
Unterbrechungs-Client-Modul 602. Der Befehlsblock 410 wird
durch die Thread-Nummer und durch die aktuelle Folgenummer des Thread
identifiziert. Der Thread bleibt belegt, während die Befehlsmaschine 310 auf
eine Bestätigung
(410) wartet.
-
Wenn
für einen
bestimmten Thread eine Bestätigung
empfangen 670 wird, aber die Folgenummer der Bestätigung nicht
mit dem Wert der Folgezählers
des Thread übereinstimmt 672,
oder wenn der Thread frei 674 ist, dann ignoriert die Befehlsmaschine 310 die
Bestätigung,
wodurch die schädlichen
Effekte mehrerer Bestätigungen
reduziert werden.
-
Wenn
eine Bestätigung
(410) für
einen belegten Thread empfangen wird, und die Folgenummer der Bestätigung mit
dem Wert auf dem Folgezähler 676 des
Thread übereinstimmt,
dann ist die Bestätigung
gültig. Die
Befehlsmaschine 310 aktualisiert 678 den CMD-Unterbrechungszustand-Vektor 606,
der dem Unterbrechungs-Client-Modul 602 zugeordnet
ist. In Übereinstimmung
mit der beispielhaften Implementierung des exemplarischen Ausführungsbeispiels
der Erfindung ist der neue CMD-Unterbrechungszustand-Vektor 606 das bitweise
UND des alten Vektors und die Umkehrung des Vektors, der in der
Bestätigung
(410) enthalten ist. Und, der Thread ist frei.
-
Wenn
nach einem (programmierbaren) Zeitüberschreitungszeitraum 680 keine
gültige
Bestätigung 410 empfangen
wird, setzt die Befehlsmaschine 310 fort, indem sie Schritte
unternimmt, um einen weiteren Befehlsblock 410 zu formulieren 662 und
auszugeben 664, wie oben beschrieben.
-
Für jeden
Thread verfolgt der Management-Prozessor 306 die letzte
empfangene 664 Folgenummer in einem Steuerblock 410,
sowie den ersten empfangenen Unterbrechungszustand-Vektor 606 entsprechend dieser
Folgenummer.
-
Wenn
ein Befehlsblock 410 für
einen bestimmten Thread empfangen 664 wird, und die Folgenummer des
Blocks nicht mit der letzten empfangenen Folgenummer übereinstimmt 680,
dann wird der Steuerblock 410 als gültig angesehen. Der Management-Prozessor 306 führt eine
Aktion 680 aus, basierend auf dem Wert des Unterbrechungszustand-Vektors 606,
der in dem Steuerblock 410 spezifiziert ist, oder eigentlich
basierend auf den darin festgelegten Logik-hoch-Bits.
-
Der
Management-Prozessor 306 formuliert 684 und sendet 670 einen
Bestätigungsblock 410.
Der Bestätigungsblock 410 enthält dieselbe
Folgenummer wie der entsprechende Befehlsblock 410 und
denselben Inhalt des Unterbrechungszustand-Vektors 606. Der Management-Prozessor 306 zeichnet
die empfangene Folgenummer und den Inhalt des Befehlsblocks (Nutzinformationen,
in diesem Fall der Unterbrechungszustand-Vektor 606) auf.
-
Wenn
ein Befehlsblock 410 für
einen Thread empfangen wird, und die Folgenummer des Blocks der letzten
empfangenen Folgenummer entspricht 679, dann ist der Steuerblock 410 ungültig, welches
eine Wiederholungsunterbrechung ist, die ausgegeben wird, weil die
Bestätigung 670 des
ersten Auslösens
der Unterbrechung den Subjekt-Vermittlungsknoten 302 nicht
erreicht hat. Der Management-Prozessor 306 führt keine Aktionen
hinsichtlich des Vektorinhalts des Befehlsblocks 410 aus.
Der Management-Prozessor 306 formuliert 684 und
sendet 670 einen (weiteren) Bestätigungsblock 410.
Die Bestätigung
enthält
dieselbe Folgenummer wie der Befehlsblock und den vorher gespeicherten
Inhalt anstelle des Inhalts, der aktuell in dem ungültigen Befehlsblock 410 vorhanden
ist. Der Management-Prozessor 306 zeichnet die empfangene
Folgenummer und den Inhalt nicht auf.
-
In
der obigen Beschreibung setzte die Interaktion zwischen dem Management-Prozessor 306 und
den ferngesteuerten Vermittlungsknoten 302 in dem Stapel 300 voraus,
dass jeder Vermittlungsknoten 302 in dem Stapel 300 seine
eigene ID kennt, die ID des Vermittlungsknotens 302, an
welchen der Management-Prozessor 306 angeschlossen ist,
und den richtigen Stapelport 308 für das Erreichen jedes Vermittlungsknotens 302 in
dem Stapel 300, das heißt, jeder Vermittlungsknotens 302 in
dem Stapel 300 ist mit den Informationen vorkonfiguriert,
die in der Weiterleitungstabelle 350 und den Registern 352 gespeichert
sind.
-
Diese
drei Informationen werden jedem Vermittlungsknotens 302 in
dem Stapel 300 bei der Initialisierung zur Verfügung gestellt.
Ein scheinbarer Teufelskreis wird sichtbar: der Stapel 300 muss
initialisiert sein, um den Stapel 300 zu konfigurieren.
Da die Fernsteuerung, die durch den Management-Prozessor 306 erfolgt, ohne
die drei oben genannten Informationen nicht ausgeführt werden
kann – das
heißt,
solange die Vermittlungsknoten 302 nicht initialisiert
sind – könnte man
erwarten, dass die Initialisierung selbst nicht über Fernsteuerung ausgeführt werden
kann.
-
In Übereinstimmung
mit dem exemplarischen Ausführungsbeispiel
der Erfindung wird für
die Initialisierung der fernen Vermittlungsnetzknoten Unterstützung bereitgestellt.
-
In Übereinstimmung
mit einer beispielhaften Implementierung des exemplarischen Ausführungsbeispiels
der Erfindung werden zwei zusätzliche
Grundelemente verwendet:
- – Vermittlungsknoten-Standard-ID – Vor der
Initialisierung hat jeder Vermittlungsknoten 302 in dem
Stapel 300 eine Vermittlungsknoten-ID gleich der reservierten
ID „0". Weil „0" eine reservierte
ID ist, kann während des
normalen Betriebs nach der Initialisierung kein Vermittlungsknoten 302 in
dem Stapel 300 seine Vermittlungsknoten-ID gleich 0 haben.
- – Portsperrung – Jeder
Stapelport 308 kann entweder in einem „Sperrzustand" oder in einem „Weiterleitungszustand" eingestellt sein.
Wenn sich ein Stapelport 308 im Sperrzustand befindet,
werden eingehende Befehlsblöcke 410 immer
direkt an die lokale Befehlsmaschine 310 gesendet. Wenn
sich der Stapelport 308 im Weiterleitungszustand befindet,
werden eingehende Befehlsblöcke 410 basierend
auf den Informationen weitergeleitet, die in den FTAGs 406 und
in der Weiterleitungstabelle 350 gespeichert sind. Standardmäßig befinden
sich alle Stapelports 308 im Sperrzustand.
-
In Übereinstimmung
mit einer beispielhaften Implementierung des exemplarischen Ausführungsbeispiels
der Erfindung wird ein Prozess 700 zur Stapeluntersuchung
und -initialisierung eingesetzt, bei welchem ein Tiefendurchlauf,
wie in 7 gezeigt, verwendet wird. Es folgt ein einfacher
Bericht:
-
Der
Management-Prozessor 306 beginnt den Initialisierungsprozess 700 durch
die Initialisierung des Vermittlungsknotens 302, der diesem
am nächsten
ist, indem ein Befehlsblock 410 erzeugt 702 wird,
der ein FTAG 406 hat, wobei der „Ziel-Vermittlungsknoten" gleich „0" ist, und der „Ziel-Port" gleich dem reservierten Port-Wert der Befehlsmaschine
ist. Der Befehlsblock 410 wird über einen Stapelport 308 gesendet 704.
Die Suchmaschine des am nächsten
gelegenen Vermittlungsknotens 302 empfängt 704 den Befehlsblock 410 und leitet
ihn an die Befehlsmaschine 310 weiter.
-
Die
Befehlsmaschine 310 führt 706 den
Befehl in dem Befehlsblock 410 gemäß dem angegebenen Operationscode
aus. Die Befehlsmaschine 310 bestätigt 708 auch den
Befehl 410, indem sie die Bestätigung 410 an den
lokalen Stapelport 308 sendet 708, über welchen
der ursprüngliche
Befehlsblock 410 einging (704).
-
Der
Management-Prozessor 306 empfängt 710 die Bestätigung und
verfügt
danach über
die notwendigen Informationen für
die Konfigurierung 710 des am nächsten gelegenen Vermittlungsknotens 302 durch das
Senden einer Reihe von Befehlsblöcken 410.
Die Vermittlungsknoten-ID des am nächsten gelegenen Vermittlungsknotens 302 wird
auf „1" neu zugewiesen 712.
-
Bevor
fortgesetzt wird, wählt 714 der
Management-Prozessor 306 einen ausgehenden Stapelport 308 aus,
um den nächsten
zu untersuchen. Hier wird der Tiefendurchlauf-Algorithmus angewendet.
Der Management-Prozessor 306 konfiguriert 716/718 die
Weiterleitungstabelle 350 der Vermittlungsknoten-ID 1,
um die Blöcke,
die für
die Vermittlungsknoten-ID 0 bestimmt sind, zu dem ausgewählten Ausgangsport 308 zu
lenken.
-
Der
Management-Prozessor 306 erzeugt 720 erneut einen
Befehlsblock 410 und sendet 722 ihn mit „Ziel-Vermittlungsknoten" gleich 0 und „Ziel-Port" gleich dem reservierten
Wert der Befehlsmaschine. Die Vermittlungsknoten-ID 1, die bereits
initialisiert ist, stellt 724 den Steuerblock 410 fest,
der für
den Vermittlungsknoten 302-0 bestimmt ist, und übermittelt 726 den
Befehlsblock 410 an den ausgewählten Stapelport 308,
der vorher konfiguriert wurde. Der nächste Vermittlungsknoten 302 in
dem Stapel 300, der über
den Stapelport 308 erreichbar ist, ist nicht initialisiert
und identifiziert sich daher selbst als standardmäßige Vermittlungsknoten-ID 0.
Beim Empfangen des Befehlsblocks 410 leitet er den Block
an die lokale Befehlsmaschine 310 weiter. Die Konfigurierung
des zweiten Vermittlungsknotens 302 in dem Stapel 300 wird
auf die gleiche Weise fortgesetzt wie die oben beschriebene Konfigurierung
des Vermittlungsknotens 302, der sich am dichtesten am
Management-Prozessor 306 befindet, was darin gipfelt, dass
die Vermittlungsknoten-ID auf „2" eingestellt wird.
-
Die
Konfigurierung aller Vermittlungsknoten 302 in dem Stapel 300 wird
auf diese Weise fortgesetzt. Der Management-Prozessor 306 sendet
einen Befehlsblock 410 an die „Vermittlungsknoten-ID 0", welche von den
bereits initialisierten Vermittlungsknoten 302 weitergeleitet
wird, bis der erste nicht initialisierte Vermittlungskoten 302 angetroffen
wird. Dann weist der Management-Prozessor 306 dem neu angetroffenen
Vermittlungsknoten 302 eine neue ID zu und konfiguriert
ihn nach Notwendigkeit. In dem Prozess konfiguriert der Management-Prozessor 306 die
Weiterleitungstabellen 350 in den konfigurierten Vermittlungsknoten 302,
so dass die Suche nach der nächsten
Vermittlungsknoten-ID 0 durch einen vorher nicht untersuchten Stapelports 308 fortgesetzt
wird.
-
Die
oben beschriebene Methode löst
beinahe das Problem der Stapel-Initialisierung. 8 stellt
ein verbleibendes Problem dar.
-
In 8 a)
hat der Management-Prozessor 306 die Schalter 302-1, 302-2 und 302-3 bereits
initialisiert. Wenn der Management-Prozessor 306 versucht,
einen vierten Vermittlungsknoten 302 aufzufinden, erzeugt
er einen Befehlsblock 410, der ein FTAG mit „Ziel-Vermittlungsknoten" gleich „0" hat, wie beschrieben. Bevor
dieser Befehlsblock 410 gesendet wird, konfiguriert der
Management-Prozessor 306 die Weiterleitungstabellen in 302-1, 302-2 und 302-3,
um die Befehlsblöcke 410,
die für
die Vermittlungsknoten-ID 0 bestimmt sind, entlang dem Weg, der
mit fett gedruckten Linien dargestellt ist, weiterzugeben.
-
8 b)
stellt dar, was geschieht, wenn der Vermittlungsknoten 302-3 tatsächlich an
den Vermittlungsknoten 302-1 zurück verbunden wird, wobei – wie gewünscht – eine Schleife
in einem ringförmigen 104 Vermittlungsknotenstapel 100 gebildet
wird, der oben beschrieben wird. In diesem Fall wird der Befehlsblock 410, der
für die
Vermittlungsknoten-ID 0 bestimmt ist, auf der Suche nach einem nicht
konfigurierten Vermittlungsknoten 302, der nicht existiert,
immer um den Stapel 300 herum geleitet. Anscheinend kann
kein Vermittlungsknoten 302 den Kreis unterbrechen, weil
jeder Vermittlungsknoten 302 in dem Ring 104 von
dem Management-Prozessor 302 konfiguriert wurde, jegliche
derartigen Befehlsblöcke 410 weiterzuleiten,
und sich daher als konfiguriert verhält.
-
Die
Schleifenerkennung ist ein entscheidender Aspekt der Topologie-Auffindung.
In Übereinstimmung mit
der beispielhaften Implementierung ist ein einfaches Verfahren zur
Erkennung und Auflösung
von Schleifen in 9 dargestellt. Bevor ein Befehlsblock 410 über einen
nicht untersuchten Stapelport 308 weitergeleitet wird,
konfiguriert 902 der Management-Prozessor 306 alle
Stapelports 308, die nicht Bestandteil des Untersuchungsweges
sind, als Sperrports, und konfiguriert 904 die Stapelports 308 auf
dem Untersuchungsweg als Weiterleitungsports.
-
Daher
kommt der Befehlsblock 410, wenn er eine Rückschleife
zu Vermittlungsknoten 302-1 bildet, an einem Sperrport
(308) an und wird sofort an die lokale Befehlsmaschine 310 weitergeleitet,
wie hierin vorstehend beschrieben. Die lokale Befehlsmaschine 310 führt den
Befehl aus und sendet eine Bestätigung
zurück an
den Management-Prozessor 306. Der Management-Prozessor 306 empfängt die
Bestätigung
und beobachtet von dem „Quell-Vermittlungsknoten"-Feld in dem FTAG 406,
dass die Bestätigung
(410) von der Vermittlungsknoten-ID 1 und nicht von der
Vermittlungsknoten-ID 0 kommt, was das Auffinden einer Schleife
in der Topologie signalisiert.
-
Im
vorausgehenden Text ist die Erfindung im Hinblick auf einen einzelnen
Stapel 300 von Vermittlungsknoten 302 beschrieben
worden, der von einem einzelnen Management-Prozessor 306 verwaltet
wird. Um spezielle Applikationen zu implementieren und/oder um beispielsweise
eine Lastverteilung bereitzustellen, kann ein Stapel von Vermittlungsknoten 302 von
zwei oder mehreren Management-Prozessoren 306 gesteuert werden,
wie in 10 dargestellt. Solange jeder
Vermittlungsknoten 302 den Ort seines eigenen steuernden Management-Prozessors 306 kennt,
treffen die oben beschriebenen Verfahren und Algorithmen ohne Modifikation
zu. Jeder Management-Prozessor 306 und die entsprechenden
verwalteten Vermittlungsknoten 302 bilden eine Management-Domäne. Stapeluntersuchung
und -initialisierung sind noch weitgehend dieselben, Abweichungen
davon werden am besten unter Bezugnahme auf 10 erläutert.
-
In 10 initialisieren
Management-Prozessor 306-A und Management-Prozessor 306-B beide
ihre eigenen Domänen,
wie oben beschrieben. Es kommt zu einem Konflikt, wenn beide Management-Prozessoren
versuchen, denselben Vermittlungsknoten 302-S zu initialisieren.
Um den Konflikt zu adressieren, sei angenommen, dass der Management-Prozessor 306-A den
Vermittlungsknoten 302-S zuerst initialisiert. Wenn der
Management-Prozessor 306-B versucht, den Vermittlungsknoten 302-S erneut
zu initialisieren, indem er ihm einen Befehlsblock 410 sendet,
sendet die Befehlsmaschine 310 des Vermittlungsknoten 302-S die
entsprechende Bestätigung
zurück
an den Management-Prozessor 306-A, weil – in Übereinstimmung
mit der aktuellen Konfiguration – der Management-Prozessor 306-A der
steuernde Management-Prozessor 306 des Vermittlungsknotens 302-S ist.
Der Management-Prozessor 306-A erkennt den Konflikt, wenn
der Management-Prozessor 306-A eine
Bestätigung
für einen
Befehlsblock 410 empfängt,
den er nie gesendet hat. Nach dem Empfang einer solchen Bestätigung kommunizieren
die Management-Prozessoren 306-A und 306-B direkt
miteinander und verhandeln, welche Vermittlungsknoten von welchem
Management-Prozessor gesteuert werden.
-
Die
dargelegten Ausführungsbeispiele
haben nur exemplarischen Charakter und Fachleute würden erkennen,
dass Variationen zu den oben beschriebenen Ausführungsbeispielen vorgenommen
werden können, ohne
vom Geist der Erfindung abzuweichen. Der Bereich der Erfindung wird
ausschließlich
durch die angefügten
Ansprüche
definiert.