-
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.
-
Aus der
US 2002/0046271 A1 ist ein Vermittlungsnetzknoten einer Mehrzahl von Vermittlungsnetzknoten, die an einem Vermittlungsnetzknotenstapel beteiligt sind, bekannt. Dieser umfasst mindestens einen Stapelport zum Austauschen von Blöcken mit wenigstens einem anderen Vermittlungsknoten in dem Stapel, einen Vermittlungsknoten-Identifizierungsregister zum Spezifizieren der Vermittlungsknoten-Identifikation des Vermittlungsknoten und eine Weiterleitungstabelle, um für jeden Vermittlungsknoten in dem Stapel einen entsprechenden Stapelport zu spezifizieren, über welchen die Blöcke an besagten Vermittlungsknoten weiterzuleiten sind. Ein Vermittlungsknoten aus dem Stapel der Vermittlungsknoten übernimmt das Management für den Stapel von Vermittlungsknoten. Des Weiteren wird ein Verfahren zur Bereitstellung von Management-Prozessor-Diensten an einen Vermittlungsnetzknoten in einem Stapel von Vermittlungsnetzknoten offenbart. Dieses Verfahren umfasst das Einkapseln von Daten, die den Dienst betreffen, der in einem Block bereitgestellt wird, das Zuordnen eines Block-Stapel-Tags (FTAG) zu dem Block, das Schreiben des Vermittlungsknoten-Identifizierers des Vermittlungsknotens in ein Ziel-Vermittlungsknoten-Feld des FTAG sowie das Übermitteln des Blocks, der das FTAG trägt, an den Vermittlungsknoten.
-
Aus der
US 2003/0185152 A1 ist ein Management-Prozessor für das Fern-Management einer Mehrzahl von Vermittlungsnetzknoten in einem Stapel bekannt. Dieser umfasst Mittel zum Identifizieren eines empfangenen Steuerblocks, eine Ablage zum Verfolgen der Vermittlungsknotenzustände, Mittel zum Einkapseln eines Befehls beim Erzeugen eines Steuerblocks, sowie Übermittlungsmittel zum Weiterleiten der erzeugten Steuerblöcke.
-
Aus der
US 2003/0189924 A1 ist ein Verfahren zum Betreiben eines Systems, welches mehrere Vermittlungsnetzknoten aufweisen kann, bekannt.
-
Aus der
US 2002/0103945 A1 ist das Einstellen des Vermittlungsknoten-Identifizierers auf einen neuen Wert, der in einem empfangenen Befehlsblock identifiziert ist, bekannt.
-
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 1a) 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 1b) 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 1c) 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 2a) dargestellte Anordnung 200 zeigt jeden Vermittlungsknoten 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 2b) 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 2a) und 2b) 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, eine Weiterleitungstabelle, um für jeden Vermittlungsknoten in dem Stapel einen entsprechenden Stapelport festzulegen, über welchen die Blöcke an besagten Vermittlungsknoten weiterzuleiten sind, und eine Klassifizierungsmaschine, die selektiv zwischen Steuerblöcken und Datenblöcken unterscheidet, wobei eine Block-Stapel-TAG(FTAG)-Signatur verwendet wird, um zwischen Blöcken mit FTAG und Blöcken ohne FTAG zu unterscheiden.
-
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 zum Durchführen einer Schleifenerkennung zwischen den Vermittlungsknoten basierend auf dem erzeugten Steuerblock; 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 von mindestens einem Vermittlungsnetzknoten in einem Stapel von Vermittlungsnetzknoten bereitgestellt. Das Verfahren umfasst: Festlegen eines Untersuchungswegs mit nicht untersuchten Stapelports; Konfigurieren von Stapelports, die nicht Bestandteil des Untersuchungswegs sind, als Sperrports und von Stapelports auf dem Untersuchungsweg als Weiterleitungsports; Übermitteln eines Befehlsblocks, der einen Ziel-Vermittlungsknoten spezifiziert, der einen reservierten Identifizierungswert hat; Empfangen einer Bestätigung von dem Vermittlungsknoten, die den reservierten Identifizierungswert von mindestens einem neu aufgefundenen Vermittlungsknoten spezifiziert; Konfigurieren des Vermittlungsknoten-Identifizierers des mindestens einen neu aufgefundenen Vermittlungsknotens auf einen eindeutigen Identifizierungswert, der von dem reservierten Identifizierungswert abweicht; und Abrufen des Stapelport-Identifizierers von dem mindestens einen neu aufgefundenen konfigurierten Vermittlungsknoten.
-
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, wobei eine FTAG-Signatur verwendet wird, um zwischen Blöcken mit FTAG und Blöcken ohne FTAG zu unterscheiden; 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 an einem 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:
-
1a, b und c schematische Darstellungen sind, die die beispielhaften Anordnungen der Vermittlungsknotenstapel zeigen, welche einen erhöhten Gesamtdatendurchsatz bereitstellen;
-
2a 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 Vermittlungsknotenstapel implementieren;
-
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 Vermittlungsknotenstapel implementiert.
-
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;
-
8a 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:
Feld | Feldbeschreibung |
Klassifiziereraktion | 0 – Normale L2-/L3-Suche
1 – Fluss-basiertes Tabellennachschlagen. Verwenden Flussfeld.
2 – Paket an Management-Prozessor, oder Paket von Management-Prozessor mit einzelnem Ziel. Verwenden Ziel-Vermittlungsknoten-Feld, um zu bestimmen, ob der Ziel-Vermittlungsknoten ein ferner Knoten ist. Wenn ja, verwenden Ziel-Vermittlungsknoten-/Stapelport-Tabelle, um einen Ausgangsport zu bestimmen. Andernfalls, weiterleiten an einen lokalen Port oder eine lokale Befehlsmaschine basierend auf dem Gruppen-ID-Feld.
3 – Paket vom Management-Prozessor mit mehreren Zielen. Verwenden Gruppen-ID-Feld zur Bestimmung des oder der Ausgangsports. |
Ziel
ODER
Fluss-ID
ODER
Gruppen-ID | Vermittlungsknoten-ID und Port-ID, für welche das Paket bestimmt ist
ODER
Fluss-ID
ODER
Gruppenadressierung-Gruppen-ID |
Ursprungsquelle | Vermittlungsknoten-ID und Port-ID, von welchen das Paket stammt, in dem Stapel. |
Flusssteuerung Freigabe | Gibt an, dass der Ursprungsquell-Port des Pakets die Flusssteuerungsfreigabe hat. |
Übermittlungs-Priorität | Übermittlungspriorität des Pakets, verwendet für Warteschlangenbildung und Reihenfolgeplanung. |
Absetz-Vorrang | Verwerfen der Priorität des Pakets, verwendet für WRED vor der Warteschlangenbildung. |
Verwendung Prioritäts-Bits | Gibt an, dass die Prioritäts-Bits, die im FTAG gespeichert sind, jegliche anderen Mittel zur Bestimmung der Priorität eines Pakets außer Kraft setzen. |
VLAN | Zwei-Byte-Tag, das Bits der Benutzerpriorität, CFI und VLAN- |
| ID enthält. |
VLAN-Tag-Ein | Gibt an, dass das Paket ein VLAN-Tag-Kopfteil enthält. |
Außerkraftsetzen VLAN-Aktion | Gibt an, dass an diesem Paket keine VLAN-Aktion (Einfügen, Strippen, Ersetzen) ausgeführt werden kann. |
Gruppenadressierung | Gibt an, ob das Paket ein Paket mit Gruppenadressierung ist. |
FTAG-Signatur | Diese Bits werden üblicherweise auf „FF” eingestellt. |
-
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:
Feld | Details |
Ziel-MAC-ADDR | Ziel-MAC-Adresse des Befehlsblocks. |
Quell-MAC-ADDR | Quell-MAC-Adresse des Befehlsblocks. |
Ethertyp | Immer eingestellt auf A0A0, um anzuzeigen, dass dies ein Befehlsblock ist. |
Folgenummer | Erzeugt einen zuverlässigen Kanal für die Fernsteuerung durch die Überwachung des Verlusts von Befehlsblöcken. |
Steuerblock-Informationen | Wenn der Befehlsblock eine Unterbrechung für die CPU ist, Angabe der Thread-ID.
Management-Prozessor oder Befehlsmaschine. Wenn 0, gibt an, dass der Management-Prozessor den Block ausgegeben hat. Wenn 1, gibt an, dass die Befehlsmaschine den Block ausgegeben hat.
Einrichtungs-ID: Für einen Block, der vom Management-Prozessor stammt, Angabe der Ziel-Einrichtung (Vermittlungsnetzknoten-/Port-ID) des Blocks.
Für einen Block, der für den Management-Prozessor bestimmt ist, Angabe der Quell-Einrichtung (Vermittlungsknoten/Port) des Blocks. |
Befehls-Operationscode | Wenn der Block eine Antwort ist, gibt das Einstellen dieses Bits auf 1 an, dass der ursprüngliche Befehl ungültig oder nicht ausführbar war.
Gibt andernfalls den Typ des Befehls/der Antwort an. |
Daten | Inhalt des Befehls/der Antwort. |
-
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:
Operationscode | Definition |
000001 | Speicherleseanforderung vom Management-Prozessor, oder Antwort |
000010 | Speicherschreibanforderung vom Management-Prozessor, oder Bestätigung |
000011 | Registerschreibanforderung vom Management-Prozessor, oder Bestätigung |
000100 | Registerleseanforderung vom Management-Prozessor, oder Antwort |
000101 | Anforderung vom Management-Prozessor, eine MAC-ADDR in die Tabelle einzufügen, oder Bestätigung |
000110 | Anforderung vom Management-Prozessor, eine MAC-Adresse in der Tabelle nachzuschlagen, oder Antwort |
000111 | Anforderung vom Management-Prozessor, eine MAC-Adresse aus der Tabelle zu löschen, oder Bestätigung |
001000 | Befehlsmaschine wart Management-Prozessor bezüglich des Statistikzählerumlaufs |
001001 | Befehlsmaschine wart Management-Prozessor bezüglich der Warteschlangenbelegung. |
001010 | Befehlsmaschine wart Management-Prozessor bezüglich eines Verknüpfungsversagens/-ausfalls. |
001011 | Befehlsmaschine wart Management-Prozessor, dass MAC-Adresse in Tabelle eingefügt wurde. |
001101 | Befehlsmaschine wart Management-Prozessor, dass MAC-Adresse aus Tabelle gelöscht wurde. |
-
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:
Ziel-Schalter 302 | Stapelport 308 |
1 | B |
2 | X (selbst) |
3 | B |
4 | D |
5 | D |
6 | D |
-
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 Management-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 Lager-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ührungsbeispiel 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 verhalt 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 gewahrt 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 Folgezahler 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 dann 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 8a) 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.
-
8b) 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-8 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.