-
Die
vorliegende Erfindung bezieht sich auf ein Prioritätsauswahlverfahren
für einen
Datenkommunikationsschalter, das folgende Schritte umfasst: An einer
ersten Netzwerkschnittstelle Empfang eines Paketes an einem ersten
Anschluss, das eine erste Priorität enthält, Bestimmung einer zweiten
Priorität für das Paket,
Aufnahme der zweiten Priorität
in das Paket und Senden des Paketes an einer zweiten Netzwerkschnittstelle,
die mit der ersten Netzwerkschnittstelle gekoppelt ist, und die
das Paket empfängt
und das Paket an ein zweites Netzwerk sendet.
-
Weiterhin
bezieht sich die vorliegende Erfindung auf einen Datenkommunikationsschalter,
der eine erste Netzwerkschnittstelle enthält, um von einem ersten Netzwerk
ein Paket zu empfangen, das eine erste Priorität enthält, um eine zweite Priorität für das Paket
zu bestimmen, um die zweite Priorität in das Paket aufzunehmen
und das Paket zu senden, und eine zweite Netzwerkschnittstelle,
die mit der ersten Netzwerkschnittstelle verbunden ist, um das Paket
zu empfangen und das Paket zu einem zweiten Netzwerk zu senden.
-
Ein
solches Verfahren und ein solcher Datenkommunikationsschalter sind
aus WO 00 03256 und aus WO 00 56024 bekannt, die dem bisherigen
Stand der Technik nach Artikel 54(3) und (4) EPC darstellen.
-
Der
Standard 802.1Q, der vom Institute of Electrical and Electronics
Engineers (Std. 802.1Q) mit dem Titel "Virtual Bridged Local Area Networks" veröffentlicht
wird, definiert eine Übereinkunft,
um neben anderen Dingen eine Verkehrs-Prioritätsauswahl in gebrückten lokalen
Netzen (LANs) zu unterstützen.
Die Priorität
im Std. 802.1Q wird über
das Netz signalisiert. Das heißt,
eine Kennung, die neben anderen Dingen eine Kennung des virtuellen
LAN (VLAN) und eine Priorität
enthalten kann, wird in dem Paket über das Netz übertragen
und in Bridges angewendet, um das Paket zu priorisieren. Allgemein
ausgedrückt
bestimmt die VLAN-Kennung, wohin das Paket gesendet werden kann,
und die Priorität
bestimmt, wie schnell das Paket bezogen auf andere Pakete verarbeitet
wird.
-
Die Übereinkunft
in Std. 802.1Q sorgt auch für
eine "Regeneration" der Kennungs-Priorität. Das heißt, jede
Bridge, die ein dem Std. 802.1Q entsprechendes Paket empfängt, kann
die eintreffende Kennungs-Priorität regenerieren und die regenerierte Kennungs-Priorität im Paket
vor der Übertragung
instanzieren. Die regenerierte Kennungs-Priorität wird an Stelle der eintreffenden
Kennungs-Priorität
instanziert, kann aber denselben Wert oder einen anderen Wert haben.
-
Obwohl
Std. 802.1Q eine nützliche Übereinkunft
zur Prioritätsauswahl
von Verkehr in einem gebrückten
Netzwerk liefert, kann es wünschenswert sein,
die Übereinkunft
auf selektiver Grundlage zu implementieren. Das heißt auf einer
oder mehreren Bridges im Netzwerk kann es wünschenswert sein, ein "mit einer Kennung
versehenes" Paket
auf der Grundlage einer anderen Prioritäts-Übereinkunft zu priorisieren
oder überhaupt
nicht. Oder es kann wünschenswert
sein, bestimmte "mit
einer Kennung versehene" Pakete
auf der Grundlage einer Kennungs-Priorität zu priorisieren und andere
Pakete auf der Grundlage einer anderen Übereinkunft oder überhaupt
nicht zu priorisieren. Sogar wo ein mit einer Kennung versehenes
Paket nicht auf der Grundlage einer Kennungs-Priorität priorisiert
wird, kann es jedoch noch wünschenswert
sein, die Prioritäts-Signalisierung nach
Std. 802.1Q für
eine mögliche Downstream-Anwendung aufrecht
zu erhalten, einschließlich
der Kennungs-Prioritäts-Regeneration und
der Instanzierung.
-
Demgemäß ist es
eine Aufgabe der vorliegenden Erfindung, ein Verfahren, sowie einen
Datenkommunikationsschalter bereitzustellen, wie z.B. einen LAN-Switch,
der Std. 802.1Q unterstützt,
der mit einer Kennung versehene Pakete auf der Grundlage einer Kennungs-Priorität, wie z.B.
der in Std. 802.1Q definierten, selektiv priorisiert, der aber die Kennungs-Prioritäts-Signalisierung
für alle
mit einer Kennung versehenen Pakete beibehält.
-
Dieses
Ziel wird durch ein Verfahren erreicht, wie zu Anfang erwähnt, das
an der ersten Netzwerkschnittstelle das Paket mit einer Prioritäts-Auswahl-Anzeige
markiert und an der zweiten Netzwerkschnittstelle das Paket abhängig von
dem Wert der Prioritäts-Auswahl-Anzeige
entweder entsprechend der zweiten Priorität oder der Zieladresse des
Paketes priorisiert.
-
Weiterhin
wird dieses Ziel durch einen Datenkommunikationsschalter erreicht,
wie zu Anfang erwähnt,
in dem eine erste Netzwerkschnittstelle so angepasst ist, dass sie
das Paket mit einer Prioritäts-Auswahl-Anzeige
markiert, und die zweite Netzwerkschnittstelle mit der ersten Netzwerkschnittstelle verbunden
ist, um das Paket abhängig
von dem Wert der Prioritäts-Auswahl-Anzeige
entweder entsprechend der zweiten Priorität oder der Zieladresse des Paketes
zu priorisieren.
-
Die
vorliegende Erfindung bietet eine selektive Prioritätsauswahl
für einen
Datenkommunikationsschalter, wie z.B. einen LAN-Switch, der Std. 802.1Q
unterstützt.
-
In
einem Aspekt empfängt
ein Schalter eine Vielzahl von Paketen an einem ersten Anschluss,
bestimmt entsprechende Prioritäten
für die
Pakete, priorisiert ausgewählte
Pakete als Funktion der jeweils bestimmten Prioritäten und
sendet die Vielzahl von Paketen, welche die jeweils bestimmten Prioritäten enthalten,
auf einem zweiten Anschluss. Die jeweiligen bestimmten Prioritäten können "regenerierte" Kennungs-Prioritäten nach
Std. 802.1Q sein. Die nicht ausgewählten der Pakete können auf
der Grundlage der jeweiligen Zieladressen priorisiert werden.
-
In
einem anderen Aspekt wird die Prioritätsauswahl mit Hilfe der Paket-Markierung
kommuniziert. Die ausgewählten
der Pakete zur Prioritätsauswahl
als Funktion der jeweils bestimmten Prioritäten können markiert werden, während die nicht
ausgewählten
der Pakete unmarkiert sein können,
oder umgekehrt. Die Markierung kann durch ein einzelnes Prioritäts-Auswahl-Bit angezeigt
werden. Markierungen können
in Paketen instanziert werden, bevor die Pakete im Schalter der
Prioritätsauswahl
ausgesetzt werden und aus dem Paket entfernt werden, bevor das Paket
auf dem zweiten Anschluss gesendet wird.
-
Diese
und andere Aspekte der vorliegenden Erfindung werden besser verstanden,
wenn man auf die folgende detaillierte Beschreibung in Verbindung mit
den begleitenden Zeichnungen Bezug nimmt, die im Folgenden kurz
beschrieben werden.
-
1 zeigt
einen LAN-Switch;
-
2 zeigt
eine repräsentative
Netzwerk-Schnittstelle in dem LAN-Switch aus 1;
-
3 zeigt
ein Paket, wie es am Zugangs-Controller in der Netzwerk-Schnittstelle
aus 2 von einem LAN empfangen wird;
-
4 zeigt
ein Paket, wie es an der Vermittlungs-Engine in der Netzwerk-Schnittstelle
aus 2 vom Zugangs-Controller
aus 2 empfangen wird;
-
5 zeigt
einen virtuellen Verbindungsleitungs-Finder in der Netzwerk-Schnittstelle
aus 2;
-
6 zeigt
die Multiplexer-Anordnung im virtuellen Verbindungsleitungs-Finder
aus 5;
-
7 zeigt
das virtuelle Verbindungsleitungs-Hash-RAM des virtuellen Verbindungsleitungs-Finders
aus 5;
-
8 zeigt
die Prioritäts-Neuabbildungs-Datenbank
in der Netzwerk-Schnittstelle aus 2;
-
9 zeigt
die Weiterleitungs-Datenbank in der Netzwerk-Schnittstelle aus 2;
-
10 zeigt
eine lokale Kopfinformation eines Paketes, wie es von der Vermittlungs-Engine,
die in der Netzwerk-Schnittstelle
von 2 arbeitet, von einem Rückwandplatinen-Bus empfangen
wird;
-
11 zeigt
die Warteschlangen-Neuabbildungs-Datenbank in der Netzwerk-Schnittstelle
von 2;
-
12 zeigt
ein Paket, wie es vom Zugangs-Controller in der Netzwerk-Schnittstelle
von 2 von der Vermittlungs-Engine von 2 empfangen
wird;
-
13 zeigt
ein Paket, wie es vom Zugangs-Controller in der Netzwerk-Schnittstelle
von 2 zu einem LAN gesendet wird;
-
14 zeigt
ein Flussdiagramm, das die Verarbeitung der Eingangs-Priorität entsprechend
einer bevorzugten Ausführung
der vorliegenden Erfindung zeigt; und
-
15 zeigt
ein Flussdiagramm, das die Verarbeitung der Ausgangs-Priorität entsprechend einer
bevorzugten Ausführung
der vorliegenden Erfindung zeigt.
-
In 1 ist
ein LAN-Switch 100 gezeigt, in dem die vorliegende Erfindung
eingesetzt wird. Der Switch 100 enthält eine Matrix von Paketbussen 111–119,
die von den jeweiligen Schnittstellen 101–109 angesteuert
werden. Die Schnittstellen 101–109 umfassen die
Netzwerkschnittstellen 101–108, von denen jede
zu einem oder mehreren LANs 121–128 gehört, sowie
die Management-Schnittstelle 109. Jeder Bus hat einen Stamm (Root),
der an die eine der Schnittstellen 101–109 angeschlossen
ist, die das ausschließliche
Recht zum Senden von Paketdaten auf dem Bus hat (d.h. die Root-Schnittstelle)
sowie Blätter
(Leaves), die mit der Vielzahl von Schnittstellen 101–109 verbunden
sind, die Paketdaten von dem Bus empfangen (d.h. die Leaf-Schnittstellen).
Vorzugsweise ist jede Schnittstelle die Root-Schnittstelle an einem
der Busse 111–119 und
ist eine Leaf-Schnittstelle an allen Bussen 111–119,
einschließlich
des Busses, für
den sie die Root-Schnittstelle
ist. Pakete werden vorzugsweise auf den Bussen 111–119 in
einer Serie von Daten-Bursts mit konstanten Bits mit einer Rate
von einem Burst pro Taktzyklus übertragen.
Die Busse 111–119 sind
rundsende-orientiert, so dass alle Daten-Bursts, die auf einem Bus übertragen
werden, alle Schnittstellen 101–109 erreichen. Zusätzlich zum Senden
und Empfangen von Paketen dient Daten-Management-Schnittstelle 109 als "Nervenzentrum" des Switch 100,
das die Netzwerk-Schnittstellen 101–108 beim
Lernen der Adressen von Netzwerk-Einrichtungen
an ihren zugehörigen
LANs 121–128 unterstützt, indem
es Informationen auf dem Management-Bus (nicht gezeigt) überträgt. Natürlich ist
die oben beschriebene Root-to-Leaf-Architektur eine von vielen möglichen
Architekturen für
einen Switch, der entsprechend der vorliegenden Erfindung arbeitet.
Andere mögliche
Architekturen können
einen einzigen gemeinsamen Bus zwischen Schnittstellen oder eine "voll vermaschte" Matrix von Punkt-zu-Punkt-Verbindungen
zwischen Schnittstellen haben.
-
In
einer grundlegenden Operation unterstützt Switch 100 eine
von der Quelle lernende Überbrückungsfunktion.
Zum Beispiel kommt ein Paket von einer Netzwerkeinrichtung (nicht
gezeigt), die sich an einem der zur Netzwerkschnittstelle 101 gehörenden LANs 121 befindet.
Das Paket enthält
eine Quelladresse der Ursprungs-Netzwerkeinrichtung und, wenn das
Paket ein Unicast-Paket ist, eine Zieladresse der Netzwerkeinrichtung,
für welche
die Kommunikation gedacht ist. Adressen der Ebene 2 (Sicherungsschicht),
wie z.B. MAC-(Media Access Control)-Adressen werden in Erwägung gezogen.
Wegen der Rundsende-Natur des LAN trifft das Paket an der Schnittstelle 101 ein.
Wenn die Quelladresse des Paketes an Schnittstelle 101 nicht
erkannt wird, wird das Paket an den Management-Controller 109 gesendet, wo
eine Lern-Operation stattfindet, die dazu führt, dass die Adresse an Schnittstelle 101 "gelernt" wird, d.h. zu einer
Liste von an Schnittstelle 101 aktiven Adressen hinzugefügt wird.
Danach erkennt Schnittstelle 101 alle Pakete, die von den
Paketbussen 101–109 empfangen
werden, und welche die gelernte Adresse als Zieladresse haben, als
an eine Netzwerkeinrichtung an einem der LANs 121 gerichtet und
erfasst solche Pakete zur Weiterleitung.
-
Der
Zieladressen-Test, der mit Paketen, die von den Paketbussen 101–109 empfangen
werden, durchgeführt
wird, wird oft als "Filter"-Test bezeichnet,
da Pakete, die als Zieladresse keine Adresse haben, die von der
Schnittstelle 101 gelernt wurde, mit bestimmten Ausnahmen
verworfen oder von der Schnittstelle 101 "gefiltert" werden. Die Filter-Tests werden
von den Schnittstellen 101–109 individuell für jedes
Paket durchgeführt,
das von den Bussen 111–119 empfangen
wird. Die Entscheidung, ob ein Paket weitergeleitet oder gefiltert
wird, erfolgt im Allgemeinen auf der Grundlage, ob ein Paket eine
zuvor wie oben beschrieben von der Schnittstelle gelernte Zieladresse
enthält.
Die Schnittstellen 101–109 nutzen
die Ergebnisse der Bestimmungen jedoch gemeinsam, um es zu vermeiden,
dass Pakete gefiltert werden, deren Zieladresse noch von keiner
Schnittstelle gelernt wurde. Solche Pakete mit "unbekanntem Ziel" werden von allen Schnittstellen erfasst. Spezieller
wendet eine Schnittstelle in einem beispielhaften Filter-Test die
folgenden Filterregeln an:
- 1. Wenn das Paket
eine Zieladresse hat, die zuvor von der Schnittstelle gelernt wurde,
ist der Filter-Test bestanden. Das Paket wird erfasst.
- 2. Wenn das Paket eine Zieladresse hat, die zuvor nicht von
der Schnittstelle gelernt wurde und die Zieladresse wurde zuvor
von einer anderen Schnittstelle gelernt, ist der Filter-Test nicht
bestanden. Das Paket wird gefiltert.
- 3. Wenn das Paket eine Zieladresse hat, die zuvor nicht von
der Schnittstelle gelernt wurde und die Zieladresse wurde zuvor
nicht von einer anderen Schnittstelle gelernt, ist der Filter-Test
bestanden. Das Paket wird erfasst. Die Schnittstellen 101–109 verwenden
vorzugsweise
-
Benachrichtigungs-Leitungen
(nicht gezeigt), um sich untereinander von den Entscheidungen zur Erfassung
von Paketen zu benachrichtigen.
-
Über die
Unterstützung
der gerade beschriebenen, von der Quelle lernenden Überbrückungsfunktion
hinaus unterstützt Switch 100 eine
Prioritätsverarbeitung,
auf die sich die vorliegende Erfindung hauptsächlich bezieht. Die Prioritätsverarbeitung
ist zur Verwendung in Verbindung mit Paketen gedacht, die eine zugeordnete
Kennungs-Priorität
haben, wie z.B. zu Std. 802.1Q kompatible Ethernet-Pakete.
-
Anhand
von 2 wird nun eine bevorzugte Prioritäts-Verarbeitung mit
Bezug auf Netzwerkschnittstelle 200 beschrieben, die repräsentativ
für die
Netzwerkschnittstellen 101–108 ist. Die Schnittstelle 200 enthält Zugangs-Steuerung 201,
die mit LANs und der Vermittlungs-Engine 211 verbunden ist.
Die Steuerung 201 empfängt
Pakete von LANs, formatiert sie und sendet sie zur Engine 211.
Die Steuerung 201 empfängt
auch Pakete von Engine 211, formatiert sie und sendet sie
auf LANs. Engine 211 ist mit Elementen zur Vereinfachung
der Prioritäts-Verarbeitung
verbunden, einschließlich
virtuellem Leitungsbündel-Finder 221,
Prioritäts-Neuabbildungs-Datenbank 231,
inhaltsadressierbarem Speicher (CAM) 241, Weiterleitungs-Datenbank 251 und Warteschlangen-Neuabbildungs-Datenbank 261. Insbesondere
empfängt
Engine 211 Pakete von Steuerung 201, unterzieht
sie einer Eingangs-Prioritäts-Verarbeitung
und sendet sie auf dem einen der Busse 111–119,
für den
Schnittstelle 200 die Root-Schnittstelle ist. Engine 211 empfängt auch
Pakete von den Bussen 111–119, unterzieht ausgewählten von
ihnen einer Ausgangs-Prioritäts-Verarbeitung und
sendet ausgewählte
von ihnen zur Steuerung 201. Die Eingangs-Prioritäts-Verarbeitung
wird mit Hilfe des virtuellen Leitungsbündel-Finders 221,
der Prioritäts-Neuabbildungs-Datenbank 231,
des CAM 241 und der Weiterleitungs-Datenbank 251 durchgeführt, während die
Ausgangs-Prioritäts-Verarbeitung mit
Hilfe von CAM 241, der Weiterleitungs-Datenbank 251 und
der Warteschlangen-Neuabbildungs-Datenbank 261 durchgeführt wird.
-
In
den 3 bis 16 wird die
in Switch 100 unterstützte
Prioritäts-Verarbeitung
noch detaillierter mit Bezug auf ein zu Std. 802.1Q kompatibles
Ethernet-Paket (im Folgenden als "mit einer Kennung versehenes" Paket bezeichnet)
im Format, das an Schnittstelle 200 von einem der LANs
empfangen wird, beschrieben. Betrachtet man zuerst 3,
enthält
das Eingangs-Paket 300 eine Ziel-MAC-Adresse (DA0-DA5), gefolgt von
einer Quell-MAC-Adresse (SA0-SA5), einer Kennung (TAG0-TAG3) und
Typen-Längen-Information
(TL0 und TL1). Auf die Typen-Längen-Information
folgt zusätzliche
Information, die typischerweise eine Internet-Protokoll-(IP)-Kopfinformation enthält, deren
erste vier Bytes als D0-D3 gezeigt sind.
-
In
der Zugangs-Steuerung 201 wird ein eintreffendes Paket 300 als
ein mit einer Kennung versehenes Paket erkannt und in ein zur Eingangs-Prioritäts-Verarbeitung
bereites Format gebracht und an Vermittlungs-Engine 211 gesendet.
Die Erkennung als ein mit einer Kennung versehenes Paket erfolgt durch
Referenz auf einen Teil der Kennung (TAG0 und TAG1), der den Wert
x8100 hat, wenn das Paket ein mit einer Kennung versehenes Paket
ist, wie im IEEE-Standard 802.1Q definiert. Das eingangs-fertige
Paket 400 ist in 4 mit der
Breite von zwei Byte gezeigt, um anzuzeigen, dass in der gezeigten
Ausführung
das Paket 400 von der Steuerung 201 zur Engine 211 in
Zwei-Byte-Bursts übertragen
wird. Man ist sich jedoch bewusst, dass in anderen Ausführungen
die Übertragung
mit anderen Breiten erfolgen kann. Paket 400 enthält eine
Kennung des physikalischen Anschlusses (PORT), welche den physikalischen
Anschluss kennzeichnet, über
den das eintreffende Paket 300 empfangen wurde, gefolgt
von Steuerinformation (CTRL), die Paket 400 als ein mit einer
Kennung versehenes Paket kennzeichnet. Auf CTRL folgt ein Teil der
Kennung (TAG2 und TAG3), der Kennungs-Steuerinformation (TCI) enthält, wie
in Std. 802.1Q definiert. Spezieller enthält TCI eine Drei-Bit-Eingangs-Kennungs-Priorität, eine
aus einem Bit bestehende kanonische Format-Kennung und eine Zwölf-Bit-VLAN-Kennung.
Der Rest des Paketes 400 wird als Eingangs-Paket 300 formatiert.
Es muss erwähnt
werden, dass, wenn ein eintreffendes Paket nicht mit einer Kennung
versehen ist, CTRL diese Bedingung im entsprechenden eingangs-fertigen
Paket anzeigt und keine TCI an solch ein Paket angehängt wird.
-
In
Vermittlungs-Engine 211 wird das Paket 400 der
Eingangs-Prioritäts-Verarbeitung
ausgesetzt, um Paket 400 für die Übertragung auf dem Bus vorzubereiten,
für den
die Schnittstelle 200 die Root-Schnittstelle ist. Durch
Bezug auf CTRL erkennt Engine 211 das Paket 400 als
ein mit einer Kennung versehenes Paket. Wenn es einmal erkannt ist,
entnimmt Engine 211 PORT, CTRL und TAG2 und TAG3 (einschließlich der
darin enthaltenen VLAN-Kennung) aus Paket 400. PORT wird
auf eine aus acht Bit bestehende virtuelle Anschluss-Kennung (VPI) neu
abgebildet, die in Switch 100 nur einmal vorhanden ist.
Diesbezüglich
ist man sich der Tatsache bewusst, dass zwei oder mehr der Netzwerk-Schnittstellen 101–108 einen
physikalischen Anschluss haben können,
der durch dieselbe physikalische Anschluss-Kennung repräsentiert
wird, und dass durch die Neuabbildung von PORT in Paket 400 auf
eine VPI alle möglichen
Mehrdeutigkeiten vorteilhaft beseitigt werden. VPI und die Zwölf-Bit-VLAN-Kennung werden
als Paar auf den Eingangsleitungen 511, bzw. 512 an
den virtuellen Verbindungsleitungs-Finder 221 gesendet.
-
Im
virtuellen Verbindungsleitungs-Finder 221 wird das VPI/VLAN-Kennungs-Paar
auf einen Zehn-Bit-Hash-Schlüssel
reduziert, der zur Auflösung
einer virtuellen Verbindungsleitungs-Kennung (VTI) benutzt wird.
Man ist sich bewusst, dass diese Reduktion die Größe des RAM
verringert, der zur Realisierung eines index-basierten Abruf-Verfahrens zur
Auflösung
einer Kennung, wie das hier zur Auflösung von VTIs beschriebene,
benötigt
wird. Betrachtet man die 5 und 6, wird
das von der Engine 211 übertragene
VPI/VLAN-Paar in Multiplexer-Anordnung 510 empfangen. Die
Anordnung 510 ist eine Anordnung von gestaffelten Multiplexern 611–620 zur
Reduktion des VPI/VLAN-Paares auf einen Hash-Schlüssel, der
die Bits von den Bitpositionen in dem VPI/VLAN-Paar enthält, für die ein
Hashing-Algorithmus festgestellt hat, dass sie zur Unterscheidung
verschiedener VPI/VLAN-Paare untereinander am effektivsten sind.
Das VPI/VLAN-Paar wird in verschiedene Untermengen gegliedert, die
auf den Eingangsleitungen 601–610 von den Multiplexern 611–620 empfangen
werden. Die von den unterschiedlichen Eingangsleitungen 601–610 übertragenen
Untermengen sind so gestaffelt, dass die Multiplexer 611–620 insgesamt
den Hash-Schlüssel
aus jeder Zehn-Bit-Kombination im VPI/VLAN-Paar in Übereinstimmung
mit Bitauswahlbefehlen, die an die Anordnung 510 angelegt
werden, auswählen
können.
Somit kann zum Beispiel Eingangsleitung 601 die Bits null
bis zwölf
des VPI/VLAN-Paares übertragen,
Eingangsleitung 602 kann die Bits eins bis dreizehn übertragen,
Eingangsleitung 603 kann die Bits zwei bis vierzehn übertragen,
und so weiter. Mit Hilfe der Multiplexer-Steuerung 520 wählt jeder
der Multiplexer 611–620 ein
einzelnes Bit aus der ihm zugeordneten der Eingangsleitungen 601–610 und
sendet nur das ausgewählte
Bit. Optional kann die Multiplexer-Steuerung 520 bewirken,
dass ein oder mehrere Multiplexer 611–620 alle Bits auf
der ihm zugeordneten der Eingangsleitungen 601–610 ignoriert
und automatisch einen Wert von Null wählt. Das ausgewählte Bit
des VPI/VLAN-Paares und alle Null-Werte werden auf den Ausgangsleitungen 631–640 übertragen und
bilden zusammen den Hash-Schlüssel.
-
Die
Multiplexer-Bitauswahl wird durch die Multiplexer-Steuerung 520 gesteuert.
Die Steuerung 520 enthält
ein Speicherelement zum Speichern einer Hash-Maske und die zugehörige Logik.
Die Hash-Maske wird vorteilhaft auf Eingangsleitung 521 programmiert
und aktualisiert. Werte für
die Hash-Maske werden von einem Hashing-Algorithmus so berechnet,
dass jedes von der Anordnung 510 empfangene VPI/VLAN-Paar
auf einen Hash-Schlüssel
reduziert werden kann, der die Bits von den Bitpositionen enthält, die
der Hashing-Algorithmus
für die
effektivsten zur Unterscheidung von VPI/VLAN-Paaren voneinander
hält. Um
die Auswahl zu vereinfachen, ist die Steuerung 520 mit
den Multiplexern 611–620 über die
Maskierungsleitungen 631–640 verbunden. Die
Steuerung 520 bestimmt Bitauswahlbefehle für jeden
der Multiplexer 611–620 aus
der Hash-Maske und sendet die Bitauswahlbefehle auf den Maskierungsleitungen 631–640.
Jeder Bitauswahlbefehl reicht aus, ein einzelnes Bit des VPI/VLAN-Paares zu erkennen,
wenn vorhanden, wobei jeder der Multiplexer 611–620 für die Aufnahme
in den Hash-Schlüssel
auszuwählen
ist. Somit kann zum Beispiel der von Multiplexer 611 auf
Leitung 631 empfangene Bitauswahlbefehl den Multiplexer 611 anweisen,
eines der Bits null bis zwölf
des VPI/VLAN-Paares, wenn vorhanden, für die Aufnahme in den Hash-Schlüssel auszuwählen, der
von Multiplexer 612 auf Leitung 632 empfangene
Bitauswahlbefehl kann den Multiplexer 612 anweisen, eines
der Bits eins bis dreizehn, wenn vorhanden, für die Aufnahme in den Hash-Schlüssel auszuwählen, und
so weiter. Der Hash-Schlüssel
wird zusammen mit einem auf Eingangsleitung 513 übertragenen
Offset zur virtuellen Verbindungsleitungs-Übereinstimmungs-Steuerung 530 übertragen,
die zusammen einen Zeiger in den virtuellen Verbindungsleitungs-Hash-Schreib-Lese-Speicher (RAM) 540 bilden.
Diesbezüglich
enthält
Hash-RAM 540 zwei Tabellen (Tabelle 1 und Tabelle 2), von
denen zu jedem gegebenen Zeitpunkt entsprechend dem Offset eine ausgewählt wird.
-
Das
Zwanzig-Bit-VPI/VLAN-Paar wird auch von der virtuellen Verbindungsleitungs-Übereinstimmungs-Steuerung 530 empfangen,
um es als Komparand in einem assoziativen Vergleich mit einem oder
mehreren VPI/VLAN-Paaren zu benutzen, die von Hash-RAM 540 auf
eine Weise zurückgeliefert werden,
die nun detaillierter beschrieben wird. Mit Bezug auf 7 ist
die Übereinstimmungs-Steuerung 530 mit
der Hash-RAM-Steuerung 540 verbunden, um assoziative Vergleiche
durchzuführen,
wozu der aus Hash-Schlüssel
und Offset gebildete Zeiger verwendet wird. Der Zeiger wird als
Anfangs-Zeiger in Hash-RAM 540 verwendet, um den Inhalt
des Eintrages abzurufen, der dem Index zugeordnet ist, dessen Wert
mit dem Zeiger übereinstimmt.
Der Zeiger hat die Funktion, einen Durchlauf durch eine verkettete
Liste von Einträgen
in der Tabelle in Gang zu setzen, der andauert, bis entweder eine Übereinstimmung
für das
VPI/VLAN-Paar gefunden
oder das Ende der verketteten Liste erreicht wurde. Spezieller enthält Tabelle
700 Eintrags-Inhalte an entsprechenden Indizes. Der Eintrags-Inhalt
umfasst für
jeden Eintrag ein VPI/VLAN-Paar, eine VTI und einen Schlüssel "nächster Eintrag", wenn vorhanden.
Im gezeigten Beispiel enthält
Tabelle 700 N Eintrags-Untermengen, die N verkettete Listen oder "Buckets" bilden. Der erste
Bucket enthält
die Indizes 701 und 709. Der zweite Bucket enthält die Indizes 702, 705, 707 und 710.
Der dritte Bucket enthält
die Indizes 703 und 708. Der N-te Bucket enthält die Indizes 704 und 706.
Wenn ein Zeiger zum Beispiel auf den Index 702 zeigt und
das VPI/VLAN-Paar des entsprechenden Eintrags nicht mit dem VPI/VLAN-Paar in
der Übereinstimmungs-Steuerung 530 übereinstimmt,
wird der Schlüssel "nächster Eintrag" aus dem Eintrag
(der Index 705 kennzeichnet) als Zeiger auf Index 705 verwendet.
Wenn das von dem Eintrag, der Index 705 entspricht, zurückgelieferte
Paar nicht übereinstimmt,
wird der Schlüssel "nächster Eintrag" aus dem Eintrag
(der Index 707 kennzeichnet) als Zeiger auf Index-Satz 707 verwendet.
Die Übereinstimmungs-Steuerung 530 fährt mit
diesem Durchlauf durch Hash-RAM 120 fort, bis eine Übereinstimmung
gefunden wurde. Die Übereinstimmungs-Steuerung 530 liefert
die VTI, die dem übereinstimmenden
Eintrag zugeordnet ist, an die Übereinstimmungs-Steuerung 530 zurück, um sie
an die Vermittlungs-Engine 211 an Ausgangsleitung 531 weiterzuleiten.
-
Die
virtuelle Verbindungsleitungs-Übereinstimmungs-Steuerung 530 überwacht
auch die Leistungsfähigkeit
des Hashing-Algorithmus und benachrichtigt einen externen Prozessor
(nicht gezeigt) auf Ausgangsleitung 532, wenn sich die
Leistungsfähigkeit
ausreichend verschlechtert hat. Insbesondere erhöht die Steuerung 530 für jeden fehlgeschlagenen Versuch,
das vom Hash-RAM 540 zurückgelieferte VPI/VLAN-Paar
mit dem zu vergleichenden in Übereinstimmung
zu bringen, einen Wert in einem Speicher. Wenn sich die Leistungsfähigkeit
unter einen Mindest-Leistungsfähigkeits-Standard
verschlechtert hat, sendet die Steuerung 530 auf der Ausgangsleitung 532 eine
Fehlerbenachrichtigung an den Prozessor, die bewirkt, dass der Prozessor
den Hashing-Algorithmus neu berechnet und die Hash-Maske auf Eingangsleitung 521 aktualisiert.
Es können verschiedene
Mindest-Leistungsfähigkeits-Standards
implementiert werden, die auf Erwägungen beruhen, wie die Gesamtzahl
von fehlgeschlagenen Versuchen, der größten Anzahl von fehlgeschlagenen
Versuchen für
einen bestimmten Durchlauf, der mittleren Anzahl von fehlgeschlagenen
Versuchen pro Durchlauf oder der Frequenz, mit der eine Anzahl von
fehlgeschlagenen Versuchen überschritten
wurde. Der Mindest-Leistungsfähigkeits-Standard
kann in der Übereinstimmungs-Steuerung 530 konfiguriert werden.
Es wird erkannt, dass immer, wenn die Hash-Maske geändert wird,
die Einträge
im Hash-RAM 540 auf neu indizierte Speicherplätze geschrieben
werden müssen.
Das Neuschreiben der Einträge
kann mit minimalem Einfluss auf die Leistungsfähigkeit durchgeführt werden,
indem man eine Tabelle zum Nachschlagen verwendet, während die andere
neu geschrieben wird, und dem Nachschlagen Priorität vor dem
Neuschreiben gewährt,
um auf das Hash-RAM 540 zuzugreifen.
-
In 8 ist
die Prioritäts-Neuabbildungs-Datenbank 231 detaillierter
gezeigt. Die Datenbank 231 bestimmt eine Ausgangs-Kennungs-Priorität für das eingangs-fertige
Paket 400 auf der Grundlage der Eingangs-Kennungs-Priorität und der
aufgelösten VTI.
Insbesondere sendet die Vermittlungs-Engine 211 die Eingangs-Kennungs-Priorität von Paket 400 und
der VTI, die vom virtuellen Leitungsbündel-Finder 221 empfangen
wurde, an die Datenbank 231. Die Eingangs-Kennungs-Priorität und die
VTI werden als Zeiger auf einen entsprechenden Index in die Datenbank 231 verwendet,
die eine Ausgangs-Kennungs-Priorität zurückliefert.
-
Unabhängig von
der Bestimmung der Ausgangs-Kennungs-Priorität, die in der Prioritäts-Neuabbildungs-Datenbank 231 durchgeführt wird,
fragt die Vermittlungs-Engine 211 den CAM 241 und
die Weiterleitungs-Datenbank 251 ab, um eine Prioritätsauswahl
für Paket 400 durchzuführen. Kehrt
man zu 2 zurück,
hat CAM 241 Einträge,
die an verschiedenen CAM-Indizes gelernte Adressen von Netzwerkeinrichtungen
enthalten, die sich an den der Schnittstelle 200 zugeordneten
LANs befinden. Die Weiterleitungs-Datenbank 251 unterhält Einträge, die mit
diesen Einträgen
in CAM 241 über
einen gemeinsamen Index verkettet sind. Die Quelladresse in Paket 400 wird
an CAM 241 gesendet, der den CAM-Index zurückliefert,
an dem sich die Quelladresse befindet (im Folgenden Quell-CAM-Index oder SCI genannt).
Mit Bezug auf 9 wird SCI als Zeiger auf den
verketteten Eintrag in Datenbank 251 benutzt, um Weiterleitungs-Daten,
einschließlich
einer Prioritäts-Auswahl-Anzeige für Paket 400 abzurufen,
die an die Engine 211 zurückgegeben wird. Die Prioritäts-Auswahl-Anzeige
bestimmt, ob Paket 400 in Switch 100 eine Dienstqualität in Relation
zu ihrer Kennungs-Priorität
gewährt
wird oder nicht, wie im Folgenden detaillierter erklärt wird.
Die Datenbank 251 ist so dargestellt, dass sie die Prioritäts-Auswahl-Anzeige
und die lokalen Prioritäts-Warteschlangen-Kennungen
an bestimmten Indizes enthält.
Die lokalen Prioritäts-Warteschlangen-Kennungen sind an
der zurzeit diskutierten Verarbeitung der Eingangspriorität nicht
beteiligt, werden aber in der Verarbeitung der Ausgangspriorität, die im
Anschluss erläutert
wird, vorteilhaft implementiert. Es muss erwähnt werden, dass, wenn die
Quelladresse in Paket 400 noch nicht gelernt wurde, von
CAM 241 kein gültiger
SCI zurückgeliefert
wird, und die vom virtuellen Verbindungsleitungs-Finder 221 zurückgelieferte
VTI stattdessen zur Indizierung einer anderen Datenbank (nicht gezeigt)
verwendet werden kann, um eine Prioritätsauswahl für Paket 400 durchzuführen.
-
Vermittlungs-Engine 211 hängt eine
lokale Paketkopfinformation an das eingangs-fertige Paket 400 an
(ohne PORT, CTRL und TAG2 und TAG3, die zuvor entnommen wurden),
um das Paket in ein ausgangs-fertiges Format zu bringen. Betrachtet
man 10, ist die lokale Paketkopfinformation 1000 des ausgangs-fertigen
Paketes gezeigt. Die Kopfinformation 1000 enthält SCI oder
wenn vom CAM 241 kein gültiger
SCI zurückgeliefert
wurde, VTI und eine Schnittstellen-Kennung, die ausreicht, um zu
erkennen, dass VTI von Schnittstelle 200 kommt. Diesbezüglich wird
erkannt, dass zwei oder mehr der Netzwerkschnittstellen 101–108 ein
VPI/VLAN-Paar haben können,
das durch dieselbe VTI repräsentiert wird,
und dass die zusätzlichen
Bits jede mögliche Mehrdeutigkeit
vorteilhaft auflösen.
Die Kopfinformation 1000 enthält weiterhin eine Anzeige "ungültiger SCI", die kennzeichnet,
ob ein gültiger
SCI zurückgeliefert
wurde oder nicht. Insbesondere wird, wenn die Anzeige "ungültiger SCI" gesetzt ist, das
ausgangs-fertige Paket von der Management-Schnittstelle 109 erfasst
und einem "Quellen-Lernen" ausgesetzt, was
dazu führt,
dass die Quelladresse zum CAM 241 hinzugefügt wird.
Die Kopfinformation 1000 enthält auch die von der Prioritäts-Neuabbildungs-Datenbank 231 zurückgelieferte
Ausgangs-Kennungs-Priorität,
die Prioritäts-Auswahl-Kennung,
die von der Weiterleitungs-Datenbank 251 zurückgeliefert
wurde (oder von der VTI-Abfrage, wenn CAM 241 keinen gültigen SCI
zurückgeliefert
hat), sowie Information über
die Kopfinformations-Länge,
eine Zieladresse und Paket-Steuerungs-Informationen. Das ausgangs-fertige
Paket wird auf dem Bus übertragen,
für den
Schnittstelle 200 die Root-Schnittstelle ist, was die Beendigung der
auf Prioritäten
basierenden Eingangs-Verarbeitung kennzeichnet.
-
Nun
wird auf eine repräsentative
Netzwerkschnittstelle 200 Bezug genommen, um die Ausgangs-Prioritäts-Verarbeitung
des ausgangs-fertigen Paketes zu beschreiben. Um unnötige Kompliziertheiten
zu vermeiden, wird angenommen, dass die Schnittstelle 200 die
aus den Netzwerk-Schnittstellen 101–108 ist, welche dem
LAN zugeordnet ist, für
welches das ausgangsfertige Paket bestimmt ist, und dass die Netzwerkeinrichtung,
von der das Paket kam, berechtigt ist, mit der Netzwerkeinrichtung
zu kommunizieren, an die das Paket gerichtet ist. Aspekte der Ausgangsverarbeitung,
die diese Annahmen testen, wie z.B. eine Berechtigungsprüfung, welche
die SCI-Komponente der Kopfinformation 1000 nutzt, werden
daher nicht detaillierter beschrieben. Die Vermittlungs-Engine 211 trennt
die Kopfinformation 1000 vom Paket, fragt CAM 241 und
die Weiterleitungs-Datenbank 251 ab, um festzustellen,
ob die Zieladresse in Kopfinformation 1000 erkannt wird, und
bestimmt dafür
eine lokale Prioritäts-Warteschlangen-Kennung
(LPQID). Wie oben erwähnt,
hat CAM 241 Einträge,
die an verschiedenen CAM-Indizes gelernte Adressen von Netzwerkeinrichtungen enthalten,
die sich an LANs befinden, die der Schnittstelle 200 zugeordnet
sind. Weil die Zieladresse in dem betrachteten Beispiel erkannt
wird, liefert CAM 241 den CAM-Index zurück, an dem sich die Zieladresse
befindet (im Folgenden CAM-Index oder DCI genannt). Kehrt man zurück zu 9,
wird der DCI als Zeiger in den verketteten Eintrag in Datenbank 251 verwendet,
um Weiterleitungs-Daten abzurufen, welche die LPQID für das Paket
enthalten, und die an Engine 211 zurückgeliefert werden. Die LPQID
ist "lokal" in dem Sinne, dass
sie von Switch 100 ohne Referenz auf irgendeine Kennungs-Priorität bestimmt wird.
Die LPQID bietet somit die Möglichkeit,
das ausgangs-fertige Paket zu priorisieren, insbesondere bezüglich der
Ablauffolgesteuerung seiner Aussendung von Schnittstelle 200 bezogen
auf andere Pakete, was von seiner Kennungs-Priorität unabhängig ist.
Die Entscheidung, ob eine Prioritätsauswahl entsprechend der
Kennungs-Priorität
oder unabhängig von
der Kennungs-Priorität durchzuführen ist,
erfolgt durch Referenz auf die Prioritäts-Auswahl-Anzeige und wird nun detaillierter
erläutert.
-
Die
Vermittlungs-Engine 211 fragt die Prioritäts-Auswahl-Anzeige in der Kopfinformation 1000 ab,
um zu bestimmen, ob das ausgangs-fertige Paket eine auf einer Kennung
basierende Prioritätsauswahl bekommen
soll oder nicht. Wenn die Prioritäts-Auswahl-Anzeige anzeigt,
dass das Paket keine auf einer Kennung basierende Prioritätsauswahl
bekommen soll, wird das Paket (neu formatiert) in die durch LPQID
spezifizierte Prioritäts-Warteschlange
gestellt, um entsprechend einem auf Prioritäten basierenden Ablauffolgesteuerungs-Algorithmus
an die Zugangs-Steuerung 201 gesendet zu werden. Wenn die
Prioritäts-Auswahl-Anzeige
jedoch anzeigt, dass das Paket eine auf einer Kennung basierende
Prioritätsauswahl
bekommen soll, fragt die Engine 211 die Warteschlangen-Neuabbildungs-Datenbank 261 ab, um
eine Kennungs-Prioritäts-Warteschlangen-Kennung (TPQID) zu
bestimmen. Betrachtet man nun 11, wird
Datenbank 261 detaillierter dargestellt. Datenbank 261 bestimmt
eine TPQID für
das Paket auf der Grundlage der Ausgangs-Kennungs-Priorität und der
LPQID. Insbesondere sendet die Engine 211 die Ausgangs-Kennungs-Priorität aus der
Kopfinformation 1000 und die aus der Weiterleitungs-Datenbank 251 ermittelte
LPQID an die Warteschlangen-Neuabbildungs-Datenbank 261. Die Ausgangs-Kennungs-Priorität und die
LPQID werden als Zeiger auf einen entsprechenden Index in Datenbank 261 verwendet,
der TPQID zurückliefert.
TPQID wird an Engine 211 zurückgeliefert, und das Paket
(neu formatiert) wird in die Prioritäts-Warteschlange gestellt,
wie durch TPQID spezifiziert, um es entsprechend einem auf Prioritäten basierenden
Ablauffolgesteuerungs-Algorithmus an die Zugangs-Steuerung 201 zu senden.
-
In 12 ist
das Format gezeigt, in dem das Paket von der Engine 211 an
die Zugangs-Steuerung 201 gesendet wird. Paket 1200 enthält eine
physikalische Anschluss-Kennung (PORT), welche den physikalischen
Anschluss kennzeichnet, über den
das abgehende Paket gesendet wird, gefolgt von Steuerinformation
(CTRL), die Paket 1200 als mit einer Kennung versehenes
Paket kennzeichnet. Auf CTRL folgt ein Teil der Kennung (TAG2 und
TAG3), der eine TCI hat, welche die Ausgangs-Kennungs-Priorität enthält. Das
Paket 1200 hat auch eine Zieladresse (DA0-DA5), eine Quelladresse
(SA0-SA5), Typen-Längen-Information
(TL0-TL1) und weitere Informationen. In der Zugangs-Steuerung 201 wird
Paket 1200 durch Referenz auf CTRL als mit einer Kennung
versehenes Paket erkannt. Wenn es als mit einer Kennung versehenes
Paket erkannt wurde, entnimmt die Steuerung 201 PORT, CTRL
und TAG2 und TAG3 aus dem Paket 1200 und legt die komplette
Kennung (TAG0-TAG3) an die Position, die durch den Standard IEEE 802.1Q
festgelegt wird, um das Ausgangs-Paket 1300 zu erzeugen.
Das Paket 1300 wird durch die Steuerung 201 an
eines der LANs 121 an dem durch PORT gekennzeichneten physikalischen
Anschluss gesendet.
-
In 14 wird
die Eingangs-Prioritäts-Verarbeitung
mit Bezug auf ein Flussdiagramm beschrieben. Ein mit einer Kennung
versehenes Paket wird an einem physikalischen Anschluss von Switch 100 empfangen
(1410), und eine virtuelle Anschluss-Kennung wird auf der Grundlage einer
mit dem physikalischen Anschluss verbundenen Kennung bestimmt (1420).
Auf der Grundlage der virtuellen Anschluss-Kennung und der VLAN-Kennungs-Komponente
der Eingangs-Kennung wird eine virtuelle Verbindungsleitungs-Kennung
bestimmt (1430). Die virtuelle Anschlussleitungs-Kennung
und die Prioritäts-Komponente
der Eingangs-Kennung werden dazu benutzt, eine Ausgangs-Kennungs-Priorität zu bestimmen
(1440), und getrennt davon wird eine Quelladresse des Eingangs-Paketes
dazu verwendet, eine Prioritätsauswahl
durchzuführen
(1450). Die Prioritäts-Auswahl-Anzeige und
die Ausgangs-Kennungs-Priorität
werden auf eine lokale Kopfinformation des Paketes angewendet (1460) und
das Paket wird gesendet (1470).
-
In 15 wird
die Ausgangs-Prioritäts-Verarbeitung
mit Bezug auf ein Flussdiagramm beschrieben. Das eingangs verarbeitete
Paket wird empfangen (1510), und es wird auf der Grundlage
einer Zieladresse des Paketes eine lokale Prioritäts-Warteschlangen-Kennung
bestimmt (1520).
-
Die
Prioritäts-Auswahl-Anzeige
des Paketes wird überprüft, um zu
bestimmen, ob das Paket auf der Grundlage der Kennungs-Priorität zu priorisieren ist
oder nicht (1530). Wenn die Antwort negativ ist, wird das
Paket auf der Grundlage der lokalen Prioritäts-Warteschlangen-Kennung an
eine Prioritäts-Warteschlange angelegt
(1550). Wenn die Antwort jedoch positiv ist, wird auf der
Basis der lokalen Prioritäts-Warteschlangen-Kennung und der Ausgangs-Kennungs-Priorität eine Kennungs-Warteschlangen-Kennung
bestimmt (1540), und das Paket wird auf der Grundlage der
Kennungs-Warteschlangen-Kennung an eine Prioritäts-Warteschlange angelegt (1550).
In beiden Fällen
wird eine Ausgangs-Kennung an das Paket angelegt (1560),
welche die Ausgangs-Kennungs-Priorität enthält, und das Paket wird von
Switch 100 gesendet (1570).